Transfiere archivos a VMs de Linux


Existen varias opciones para transferir archivos a instancias de VM de Compute Engine que dependen del SO de tu estación de trabajo y el SO de la instancia de VM de destino.

Transfiere desde A las VM de Linux
Linux o macOS
Windows

Transfiere archivos a través de Cloud Storage

Los buckets de Cloud Storage se pueden usar como un punto de transferencia entre tú y tus VM. Puedes usar un navegador web, Google Cloud CLI o un lenguaje de programación para transferir archivos entre Cloud Storage y las VM de Compute Engine.

Se pueden usar diferentes tipos de credenciales para el paso de carga y descarga según tus necesidades:

Si deseas usar Cloud Storage para transferir archivos entre una computadora y una VM, haz lo siguiente:

  1. Crea un bucket de Cloud Storage si no tienes un bucket existente para usar en las transferencias de archivos.
  2. Usa los permisos de IAM para modificar el acceso al bucket:
    • Se debe otorgar el rol de Administrador de objetos de almacenamiento a las cuentas que suben archivos al depósito.
    • Se debe otorgar el rol Visualizador de objetos de almacenamiento a las cuentas que descargan archivos.
  3. Accede al dispositivo de origen y sube los archivos al depósito.
  4. Accede al dispositivo de destino y descarga los archivos desde el depósito que completa la transferencia de archivos.
  5. Opcional: Borra los archivos que ya no necesites para evitar cargos de almacenamiento no deseados.

Si necesitas transferir archivos en dirección opuesta, puedes invertir el proceso. Asegúrate de que la cuenta que sube el archivo tenga acceso de escritura al bucket.

Transfiere archivos con SSH en el navegador

Si puedes establecer una conexión SSH a una VM mediante SSH en el navegador, puedes usar esa conexión para transferir archivos hacia y desde la VM.

Sube elementos a la VM

  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 instancias de máquinas virtuales, haz clic en SSH en la fila de la instancia a la que deseas conectarte.

    Botón SSH junto al nombre de la instancia.

  3. Una vez establecida la conexión, haz clic en el ícono de carga .

    Botón Subir.

    Se abrirá el cuadro de diálogo de carga.

  4. Elige los archivos que deseas subir.
  5. Haz clic en Subir archivos para subir los archivos. El archivo se subirá al directorio /home/USER.

Descarga desde la VM

  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 instancias de máquinas virtuales, haz clic en SSH en la fila de la instancia a la que deseas conectarte.

    Botón SSH junto al nombre de la instancia.

  3. Una vez establecida la conexión, haz clic en el ícono de descarga .

    Botón para descargar.

    Se abrirá el cuadro de diálogo de descarga.

  4. En el cuadro de texto Ruta de acceso, ingresa la ruta de acceso relativa al archivo que deseas descargar.
  5. Haz clic en Descargar para descargar el archivo. El archivo se descargará en la carpeta de descarga predeterminada de tu estación de trabajo.

Transfiere archivos con Google Cloud CLI

Google Cloud CLI proporciona una utilidad de transferencia de archivos mediante el protocolo de copia segura (SCP) a través de una conexión SSH establecida.

Para transferir archivos mediante SCP, haz lo siguiente:

  1. Revisa las reglas de firewall y confirma que se permitan las conexiones SSH en el puerto 22; si no crea una regla de firewall SSH.
  2. Asegúrate de que gcloud CLI esté instalada en el dispositivo de origen que contiene los archivos que se transferirán.
  3. Usa el comando gcloud compute scp para transferir los archivos a la máquina de destino.

En el siguiente ejemplo, se copia un archivo de la estación de trabajo al directorio principal de la VM:

gcloud compute scp LOCAL_FILE_PATH VM_NAME:REMOTE_DIR

Reemplaza lo siguiente:

  • LOCAL_FILE_PATH: la ruta de acceso al archivo en tu máquina
  • VM_NAME: El nombre de tu VM
  • REMOTE_DIR: un directorio en la máquina remota

También puedes copiar archivos y directorios a la inversa desde la máquina remota. En el siguiente ejemplo, se copia de forma recurrente un directorio de la fuente 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.

Transfiere archivos mediante SCP en estaciones de trabajo de Linux y macOS

La herramienta de línea de comandos de scp funciona de manera similar al comando gcloud compute scp, pero requiere que administres manualmente tus Llaves SSH.

Para transferir archivos mediante SCP, debes tener una regla de firewall en la red que la VM use y permita establecer conexiones SSH en el puerto 22. Para verificar si estas reglas de firewall existen, busca una regla de firewall que permita conexiones de tcp:22 en la consola de Google Cloud.

Ir a Reglas de firewall

Si no tienes una regla de firewall que permita conexiones SSH en el puerto 22, crea la regla de firewall.

La herramienta de scp usa los mismos archivos de claves que utilizas para conectarte a las instancias mediante SSH estándar.

  1. Si todavía no aplicaste una clave pública al proyecto o la instancia de VM de la consola de Google Cloud, crea un par de claves SSH y agrega la clave pública al proyecto o metadatos de instancia.

  2. Busca la IP externa de la VM a la que deseas enviar archivos. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  3. Usa la herramienta de scp para copiar un archivo de la estación de trabajo al 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@IP_ADDRESS:~
    

    Reemplaza lo siguiente:

    • LOCAL_FILE_PATH: el nombre del archivo local que deseas subir
    • USERNAME: tu nombre de usuario
    • IP-ADDRESS: La dirección IP externa de la VM.

También puedes copiar archivos de una VM a tu estación de trabajo local si inviertes las variables de origen y destino. Para este ejemplo, debes copiar un archivo de la VM a una ruta en la estación de trabajo.

scp -i ~/.ssh/my-ssh-key USERNAME@IP_ADDRESS:REMOTE_FILE_PATH LOCAL_FILE_PATH

Reemplaza lo siguiente:

  • USERNAME: tu nombre de usuario
  • IP_ADDRESS: La dirección IP externa de la VM.
  • REMOTE_FILE_PATH: el nombre del archivo remoto que deseas descargar
  • LOCAL_FILE_PATH: la ubicación de la estación de trabajo en la que deseas descargar el archivo

Transfiere archivos mediante WinSCP en estaciones de trabajo de Windows

En las estaciones de trabajo de Windows, el cliente WinSCP te permite administrar archivos en las instancias a través de una interfaz gráfica de navegador de archivos.

WinSCP usa los mismos archivos clave que usas para conectarte a las VMs mediante PuTTY.

  1. Haz lo siguiente si aún no configuraste la autenticación SSH basada en claves para tu instancia:

    1. Crea un par de claves SSH con PuTTYgen. La clave SSH privada debe usar el formato .ppk, que es el predeterminado para las claves creadas por PuTTYgen.

    2. Agrega tu clave SSH pública a los metadatos de tu proyecto o a los metadatos de tu VM. Para obtener más información, consulta Agrega claves SSH a los metadatos del proyecto o Agrega claves SSH a los metadatos de la instancia.

  2. Busca la IP externa de la VM a la que deseas 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 VM, busca la dirección IP externa en la columna IP externa de tu VM.
  3. Descarga y, luego, instala WinSCP. La configuración de instalación predeterminada es suficiente para la mayoría de los usuarios.

  4. Inicia el programa WinSCP. Se abre una ventana de acceso en la que puedes configurar tu conexión.

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

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

    2. En el campo Nombre de host (Host name), especifica la dirección IP externa de la VM a la que deseas conectarte.

    3. En el campo Nombre de usuario (User name), especifica el nombre de usuario de Google que usas para acceder al proyecto. En este ejemplo, el usuario es example-user.

      Establece el protocolo de archivo en SCP, el nombre de host en 104.196.31.103 y el nombre de usuario en example-user.

  6. Haz clic en el menú desplegable Avanzado (Advanced) para abrir la configuración avanzada y navega a SSH > Autenticación (Authentication).

  7. En el cuadro Archivo de claves privadas, especifica la ruta de acceso al archivo de claves privadas del par de claves SSH que creaste para la VM.

    Configuración del archivo de claves privadas como my-ssh-key.ppk en el cuadro de diálogo de la configuración avanzada del sitio.

  8. Haz clic en Aceptar (Ok) para guardar la configuración avanzada.

  9. Haz clic en Iniciar sesión para conectarte a la instancia. Si la conexión es exitosa, la ventana abre el sistema de archivos local a la izquierda y el sistema de archivos de la VM a la derecha. Puedes navegar a diferentes directorios en estos sistemas de archivos y arrastrar archivos para transferirlos desde la VM y hacia ella.

  10. Es posible que no tengas permiso para administrar la mayoría de los archivos fuera de tu directorio principal de la VM. Navega al directorio de inicio de la VM:

    /home/USERNAME
    
  11. Usa la interfaz de WinSCP para mover los archivos entre la estación de trabajo y la VM.

  12. Después de copiar los archivos a la VM, conéctate a la instancia para que puedas ejecutar o mover archivos con permisos sudo completos.

¿Qué sigue?