Intenta usar gcloud compute scp
:
gcloud compute scp
[[[email protected]]INSTANCE:]SRC [[[[email protected]]INSTANCE:]SRC …]
[[[email protected]]INSTANCE:]DEST
[--compress] [--dry-run] [--force-key-file-overwrite]
[--plain] [--port=PORT] [--recurse] [--scp-flag=SCP_FLAG]
[--ssh-key-file=SSH_KEY_FILE]
[--strict-host-key-checking=STRICT_HOST_KEY_CHECKING]
[--zone=ZONE]
[GCLOUD_WIDE_FLAG …]
[-h]
por ejemplo,
$ gcloud compute scp \
my-instance-1:~/file-1 \
my-instance-2:~/file-2 \
~/my-destination \
--zone us-central2-a
Como alternativa, también puede usar (no gcloud
) sftp
o scp
; consulte esta respuesta SO para obtener detalles sobre los argumentos de la línea de comando que debe especificar, que citaré aquí para simplificar:
sftp -o IdentityFile ~/.ssh/google_compute_engine [email protected]
Para usar cualquier otra herramienta SFTP, proporcione de manera similar la ruta a la clave privada SSH y podrá conectarse a la instancia. Sin embargo, en el caso de gcloud
, puede resolver el nombre de host a la IP pública por sí mismos; para todas las demás herramientas, deberá encontrar la IP manualmente y especificar la dirección IP directamente.
(gcloud compute copy-files
está en desuso ahora, por lo tanto gcloud compute scp
se recomienda)
Usa gcloud compute scp
de la siguiente manera:
gcloud compute scp [[[email protected]]INSTANCE:]SRC [[[[email protected]]INSTANCE:]SRC …]
[[[email protected]]INSTANCE:]DEST [--compress] [--dry-run] [--force-key-file-overwrite]
[--plain] [--port=PORT] [--recurse] [--scp-flag=SCP_FLAG]
[--ssh-key-file=SSH_KEY_FILE] [--strict-host-key-checking=STRICT_HOST_KEY_CHECKING]
[--zone=ZONE] [GCLOUD_WIDE_FLAG …]
Por ejemplo:
$ gcloud compute scp example-instance:~/REMOTE-DIR ~/LOCAL-DIR \
--zone us-central1-a
Si la zona ya está configurada (usando gcloud config set compute/zone ZONE
o a través de la variable de entorno, entonces no necesita especificar la zona arriba)
Además, gcloud compute scp
no copia recursivamente por defecto. Necesitamos usar el --recurse
bandera para ello.
Consulte la documentación detallada aquí.
Tal vez puedas usar SFTP (google usó Filezilla en sus documentos). No soy muy bueno con CLI y, por lo tanto, me gustan las opciones de GUI de Filezilla y otros proveedores.
Estos son los pasos a un alto nivel:
- Instala y ejecuta el SDK de gcloud (
$ gcloud init
) - Generar clave SSH (
$ gcloud compute ssh
) - Configurar el cliente FTP (instalar y agregar el archivo clave)
- Conéctese a la máquina virtual mediante el cliente SFTP
Y aquí está la documentación de Google.
Además, he grabado esto, podría ser útil:
https://www.youtube.com/watch?v=9ssfE6ODpak