Para transferir archivos a instancias de VM de Compute Engine, hay diferentes opciones disponibles en función del SO de tu estación de trabajo y del SO de la instancia de VM de destino.
Transferir de | A máquinas virtuales Linux |
---|---|
Linux o macOS | |
Windows |
Transferir archivos a través de Cloud Storage
Los segmentos de Cloud Storage se pueden usar como punto de transferencia entre tú y tus VMs. Puedes usar un navegador web, la CLI de Google Cloud o un lenguaje de programación para transferir archivos entre Cloud Storage y las VMs de Compute Engine.
Se pueden usar diferentes tipos de credenciales en los pasos de subida y descarga para que se adapten mejor a tus necesidades:
- Acceder a los datos en nombre de un usuario es la mejor opción para operaciones de un solo uso o recursos de los que seas el principal responsable.
- Considera las credenciales de la cuenta de servicio para las implementaciones a gran escala y los escenarios de recursos compartidos.
Para usar Cloud Storage y transferir archivos entre un ordenador y una VM, haz lo siguiente:
- Crea un segmento de Cloud Storage si no tienes ninguno que puedas usar para transferir archivos.
-
Usa permisos de gestión de identidades y accesos para modificar el acceso al bucket:
- Las cuentas que suban archivos al segmento deben tener el rol Administrador de objetos de Storage asignado.
- Las cuentas que descarguen archivos deben tener asignado el rol Lector de objetos de Storage.
- Inicia sesión en el dispositivo de origen y sube los archivos al segmento.
- Inicia sesión en el dispositivo de destino y descarga los archivos del segmento para completar la transferencia.
- Opcional: elimina los archivos que ya no necesites para evitar cargos de almacenamiento no deseados.
Si necesitas transferir archivos en la otra dirección, puedes invertir el proceso. Asegúrate de que la cuenta que sube el archivo tenga acceso de escritura al contenedor.
Transferir archivos mediante SSH en el navegador
Si puedes establecer una conexión SSH con una VM mediante SSH en el navegador, puedes usar esa conexión para transferir archivos a la VM y desde ella.
Subir a la VM
- En la consola de Google Cloud , ve a la página Instancias de VM.
-
In the list of virtual machine instances, click SSH in the row of
the instance that you want to connect to.
Una vez que se haya establecido la conexión, haz clic en el icono de subida
.Se abrirá el cuadro de diálogo de subida.
- Elige los archivos que quieras subir.
- Para subir los archivos, haz clic en Subir archivos. El archivo se subirá al directorio
/home/USER
.
Descargar desde la VM
- En la consola de Google Cloud , ve a la página Instancias de VM.
-
In the list of virtual machine instances, click SSH in the row of
the instance that you want to connect to.
Una vez que se haya establecido la conexión, haz clic en el icono de descarga
.Se abrirá el cuadro de diálogo de descarga.
- En el campo Ruta, introduzca la ruta relativa del archivo que quiera descargar.
- Descarga el archivo haciendo clic en Descargar. El archivo se descarga en la carpeta de descargas predeterminada de tu estación de trabajo.
Transferir archivos con Google Cloud CLI
La CLI de Google Cloud proporciona una utilidad de transferencia de archivos del protocolo de copia segura (SCP) a través de una conexión SSH establecida.
Para transferir archivos mediante SCP, haz lo siguiente:
-
Revisa tus reglas de cortafuegos
y confirma que se permiten las conexiones SSH en el puerto
22
. Si no es así, crea una regla de cortafuegos SSH. - Asegúrate de que gcloud CLI esté instalado en el dispositivo de origen que contenga los archivos que se van a transferir.
-
Usa el comando
gcloud compute scp
para transferir los archivos al equipo de destino.
En el siguiente ejemplo se copia un archivo de tu estación de trabajo en el directorio principal de la VM:
gcloud compute scp LOCAL_FILE_PATH VM_NAME:REMOTE_DIR
Haz los cambios siguientes:
LOCAL_FILE_PATH
: la ruta al archivo en tu máquinaVM_NAME
: el nombre de tu VMREMOTE_DIR
: un directorio en el equipo remoto
También puedes copiar archivos y directorios en sentido inverso desde el equipo remoto. En el siguiente ejemplo se copia de forma recursiva un directorio del origen al destino:
gcloud compute scp --recurse VM_NAME:REMOTE_DIR LOCAL_FILE_PATH
Para obtener más información, consulta la documentación de referencia de gcloud compute scp
.
Transferir archivos mediante SCP en estaciones de trabajo Linux y macOS
La herramienta de línea de comandos scp
funciona de forma similar al comando gcloud compute scp
, pero requiere que gestiones manualmente tus claves SSH.
Para transferir archivos mediante SCP, debes tener una regla de cortafuegos en la red que use tu VM que permita las conexiones SSH en el puerto 22
. Para comprobar que esta regla de cortafuegos existe, busca una regla de cortafuegos que permita las conexiones tcp:22
en la consola de Google Cloud .
Si no tienes una regla de cortafuegos que permita las conexiones SSH en el puerto 22
,
crea la regla de cortafuegos.
La herramienta scp
usa los mismos archivos de claves que utilizas para conectarte a tus instancias mediante SSH estándar.
Si aún no has aplicado una clave pública a tu proyecto o instancia de VM de la consola, crea un par de claves SSH y añade la clave pública a los metadatos del proyecto o de la instancia. Google Cloud
Busca la IP externa de la máquina virtual a la que quieras enviar archivos.
En la consola de Google Cloud , ve a la página Instancias de VM.
En la lista de VMs, busca la dirección IP externa en la columna IP externa de la VM de destino.
Usa la herramienta
scp
para copiar un archivo de tu estación de trabajo en el directorio principal de la VM de destino. En este ejemplo, la clave privada se encuentra en~/.ssh/my-ssh-key
.scp -i ~/.ssh/my-ssh-key LOCAL_FILE_PATH USERNAME@IPv4_ADDRESS:~
Para una dirección IPv6 externa, usa la siguiente sintaxis:
scp -6 -i ~/.ssh/IDENTITY_FILE LOCAL_FILE_PATH USERNAME@[IPv6_ADDRESS]:~/
Haz los cambios siguientes:
IDENTITY_FILE
: el archivo que contiene la identidad (clave privada) para la autenticación de clave públicaLOCAL_FILE_PATH
: el nombre del archivo local que quieras subirUSERNAME
: tu nombre de usuarioIPv4_ADDRESS
oIPv6_ADDRESS
: la dirección IP externa de tu VM
También puedes copiar archivos de una VM a tu estación de trabajo local invirtiendo las variables de origen y destino. En este ejemplo, copia un archivo de tu máquina virtual en una ruta de tu estación de trabajo.
scp -i ~/.sshIDENTITY_FILE USERNAME@IP_ADDRESS:REMOTE_FILE_PATH LOCAL_FILE_PATH
Haz los cambios siguientes:
IDENTITY_FILE
: el archivo que contiene la identidad (clave privada) para la autenticación de clave públicaUSERNAME
: tu nombre de usuarioIP_ADDRESS
: la dirección IP externa de tu VMREMOTE_FILE_PATH
: el nombre del archivo remoto que quieres descargarLOCAL_FILE_PATH
: la ubicación de tu estación de trabajo en la que quieres descargar el archivo
Transferir archivos con WinSCP en estaciones de trabajo Windows
En las estaciones de trabajo Windows, el cliente WinSCP te permite gestionar archivos en tus instancias a través de una interfaz gráfica de explorador de archivos.
WinSCP usa los mismos archivos de clave que usas para conectarte a las VMs con PuTTY.
Si no has configurado la autenticación SSH basada en claves para tu instancia, haz lo siguiente:
Crea un par de claves SSH con PuTTYgen. La clave SSH privada debe usar el formato
.ppk
, que es el formato predeterminado de las claves creadas por PuTTYgen.Añade tu clave SSH pública a los metadatos de tu proyecto o a los de tu VM. Para obtener más información, consulta Añadir claves SSH a los metadatos de un proyecto o Añadir claves SSH a los metadatos de una instancia.
Busca la IP externa de la máquina virtual a la que quieras enviar archivos.
- En la consola de Google Cloud , ve a la página Instancias de VM.
- En la lista de VMs, busca la dirección IP externa de tu VM en la columna IP externa.
Descarga e instala WinSCP. La configuración de instalación predeterminada funciona para la mayoría de los usuarios.
Inicia el programa WinSCP. Se abrirá una ventana de inicio de sesión en la que podrás configurar los ajustes de conexión.
En WinSCP, configura los ajustes de conexión.
Selecciona
SCP
como protocolo de transferencia de archivos en el campo Protocolo de archivo.En el campo Host Name (Nombre de host), especifica la dirección IP externa de la máquina virtual a la que quieras conectarte.
En el campo Nombre de usuario, especifica el nombre de usuario de Google que usas para acceder a tu proyecto. En este ejemplo, el usuario es
example-user
.
Haz clic en la lista desplegable Avanzado para abrir la configuración avanzada y ve a SSH > Autenticación.
En el cuadro Archivo de clave privada, especifica la ruta al archivo de clave privada del par de claves SSH que has creado para la VM.
Haz clic en Aceptar para guardar los ajustes avanzados.
Haz clic en Iniciar sesión para conectarte a tu VM. Si la conexión se establece correctamente, se abrirá una ventana con el sistema de archivos local a la izquierda y el sistema de archivos de la VM a la derecha. Puedes desplazarte a diferentes directorios de estos sistemas de archivos y arrastrar archivos para transferirlos a tu VM y desde ella.
Es probable que no tengas permiso para gestionar la mayoría de los archivos fuera del directorio principal de la VM. Ve al directorio principal de la VM:
/home/USERNAME
Usa la interfaz de WinSCP para mover archivos entre tu estación de trabajo y la máquina virtual.
Después de copiar los archivos en la VM, conéctate a tu instancia para poder ejecutar o mover archivos con permisos
sudo
completos.
Siguientes pasos
- Conéctate a tus instancias para usar los archivos que has subido.