Transferir archivos a máquinas virtuales Linux


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:

Para usar Cloud Storage y transferir archivos entre un ordenador y una VM, haz lo siguiente:

  1. Crea un segmento de Cloud Storage si no tienes ninguno que puedas usar para transferir archivos.
  2. 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.
  3. Inicia sesión en el dispositivo de origen y sube los archivos al segmento.
  4. Inicia sesión en el dispositivo de destino y descarga los archivos del segmento para completar la transferencia.
  5. 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

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a instancias de VM

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

  3. 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.

  4. Elige los archivos que quieras subir.
  5. Para subir los archivos, haz clic en Subir archivos. El archivo se subirá al directorio /home/USER.

Descargar desde la VM

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a instancias de VM

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

  3. 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.

  4. En el campo Ruta, introduzca la ruta relativa del archivo que quiera descargar.
  5. 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:

  1. 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.
  2. Asegúrate de que gcloud CLI esté instalado en el dispositivo de origen que contenga los archivos que se van a transferir.
  3. 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áquina
  • VM_NAME: el nombre de tu VM
  • REMOTE_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 .

Ir a reglas de cortafuegos

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.

  1. 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

  2. Busca la IP externa de la máquina virtual a la que quieras enviar archivos.

    1. En la consola de Google Cloud , ve a la página Instancias de VM.

      Ir a instancias de VM

    2. En la lista de VMs, busca la dirección IP externa en la columna IP externa de la VM de destino.

  3. 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ública
    • LOCAL_FILE_PATH: el nombre del archivo local que quieras subir
    • USERNAME: tu nombre de usuario
    • IPv4_ADDRESS o IPv6_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ública
  • USERNAME: tu nombre de usuario
  • IP_ADDRESS: la dirección IP externa de tu VM
  • REMOTE_FILE_PATH: el nombre del archivo remoto que quieres descargar
  • LOCAL_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.

  1. Si no has configurado la autenticación SSH basada en claves para tu instancia, haz lo siguiente:

    1. 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.

    2. 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.

  2. Busca la IP externa de la máquina virtual a la que quieras enviar archivos.

    1. En la consola de Google Cloud , ve a la página Instancias de VM.

      Ir a instancias de VM

    2. En la lista de VMs, busca la dirección IP externa de tu VM en la columna IP externa.
  3. Descarga e instala WinSCP. La configuración de instalación predeterminada funciona para la mayoría de los usuarios.

  4. Inicia el programa WinSCP. Se abrirá una ventana de inicio de sesión en la que podrás configurar los ajustes de conexión.

  5. En WinSCP, configura los ajustes de conexión.

    1. Selecciona SCP como protocolo de transferencia de archivos en el campo Protocolo de archivo.

    2. En el campo Host Name (Nombre de host), especifica la dirección IP externa de la máquina virtual a la que quieras conectarte.

    3. 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.

      Se define el protocolo de archivo como SCP, el nombre de host como 104.196.31.103 y el nombre de usuario como example-user.

  6. Haz clic en la lista desplegable Avanzado para abrir la configuración avanzada y ve a SSH > Autenticación.

  7. 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.

    Definir el archivo de clave privada como my-ssh-key.ppk en el cuadro de diálogo Configuración avanzada del sitio.

  8. Haz clic en Aceptar para guardar los ajustes avanzados.

  9. 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.

  10. 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
    
  11. Usa la interfaz de WinSCP para mover archivos entre tu estación de trabajo y la máquina virtual.

  12. 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