Conéctate a instancias con métodos avanzados


Por lo general, los mejores métodos de conexión SSH se describen en la página Conexión a instancias. Sin embargo, cuando necesites administrar tus propias credenciales, usar herramientas de terceros o conectarte mediante rutas de conexión alternativas, los siguientes métodos avanzados pueden ajustarse mejor a tus necesidades que los métodos estándar.

Hay varios métodos avanzados que puedes usar para conectarte a las instancias de Linux y Windows Server:

Antes de comenzar

Proporciona Llaves SSH públicas a las instancias

Por lo general, Compute Engine crea y administra Llaves SSH por ti cada vez que te conectas con los métodos descritos en Conéctate a instancias.

Sin embargo, si necesitas usar tus propias Llaves SSH (por ejemplo, cuando usas herramientas de terceros para conectarte), debes generar tu propio par de Llaves SSH y proporcionar tu archivo de Llaves SSH públicas a la instancia antes de poder conectarte.

Si no estás familiarizado con cómo generar tu propia llave SSH y cómo localizar el archivo de llaves SSH públicas, consulta Crea una nueva llave SSH y Encuentra una llave SSH.

Para proporcionar tu clave SSH a la instancia, usa uno de los siguientes métodos:

  • (Recomendado) Habilita el Acceso al SO. El Acceso al SO usa funciones de IAM para proporcionar tu clave SSH pública a la instancia a través de tu Cuenta de Google o una cuenta de usuario administrada. Para obtener instrucciones, consulta la sección sobre cómo configurar el Acceso al SO.

    Cuando configures el Acceso al SO, asegúrate de completar el paso para agregar claves SSH a una cuenta de usuario. En este paso, puedes agregar tu clave pública a la cuenta de usuario que deseas usar para conectarte a tu VM.

    Para obtener más información sobre los beneficios de usar esta función, consulta Acceso al SO.

  • (No recomendado) Agrega y quita claves SSH de forma manual mediante la edición de los metadatos de proyecto o instancia. Consulta Administra llaves SSH en los metadatos. Este método genera complicaciones y riesgos innecesarios, por lo que no se recomienda, a menos que el método de Acceso al SO que se explicó antes no te funcione. Consulta Riesgos de la administración manual de claves.

  • Si a tu instancia la administra otra persona que ya tiene acceso (como un administrador de sistemas de tu organización), también puedes proporcionarle tu archivo de llaves SSH públicas y pedirle que lo configure de forma manual. Por lo general, esto implica que se conecten a tu instancia, copien el archivo de claves públicas al directorio principal de tu instancia y cambien los permisos del archivo, pero esto dependerá de cómo se administran las instancias en tu organización.

Conéctate con herramientas de terceros

Para conectarte, aplica los siguientes pasos determinados del sistema operativo de tu estación de trabajo local:

Linux y macOS

Para conectarte con SSH desde una máquina Linux o macOS, usa el comando integrado ssh en una terminal local:

  1. Si aún no lo has hecho, proporciona tu clave SSH pública a una instancia mediante una de las opciones disponibles. Debes hacer esto para continuar.

  2. En Google Cloud Console, ve a la página Instancias de VM y busca la dirección IP externa de la instancia a la que quieres conectarte.

    Ve a la página Instancias de VM

  3. En una terminal local, usa el comando ssh junto con tu archivo de claves privadas SSH, el nombre de usuario y la dirección IP externa de la instancia a la que deseas conectarte. Por ejemplo:

    ssh -i path-to-private-key username@external-ip

    Reemplaza los siguientes elementos:

    Después de conectarte, usa esta terminal para ejecutar comandos en la instancia. Cuando termines, ejecuta el comando exit para desconectarte de la instancia.

Windows (PuTTY)

Windows no incluye un cliente SSH integrado, lo que significa que debes descargar y, luego, instalar un cliente de terceros. En las siguientes instrucciones, se muestra cómo conectarte mediante PuTTY.

Para conectarte a una instancia de Windows mediante PuTTY, haz lo siguiente:

  1. Si aún no lo has hecho, proporciona tu clave SSH pública a una instancia mediante una de las opciones disponibles. Debes hacer esto para continuar.

  2. En Google Cloud Console, ve a la página Instancias de VM y busca la dirección IP externa de la instancia a la que quieres conectarte. Mantén disponible la dirección IP externa para los pasos posteriores.

    Ve a la página Instancias de VM

  3. Si aún no lo has hecho, descarga putty.exe.

  4. Inicia putty.exe para abrir PuTTY. Se abrirá una ventana de configuración de conexión.

  5. En el campo Nombre del host de la página de configuración de conexión, ingresa el nombre de usuario asociado con la clave SSH y la dirección IP externa de la instancia a la que deseas conectarte con el siguiente formato:

    username@external-ip

    Reemplaza lo siguiente:

    • username: El nombre de usuario del usuario que se conecta a la instancia. Este debe ser el nombre de usuario que especificaste cuando creaste la llave SSH.
    • external-ip: La dirección IP externa de la instancia a la que deseas conectarte.

    Por ejemplo, consulta la siguiente captura de pantalla:

    A modo de ejemplo, establece el campo Nombre del host con jane_doe@203.0.113.2 de nombre de usuario y dirección IP.

  6. En el menú Categoría del lado izquierdo, navega hasta Conexión > SSH > Auth.

  7. En el campo Archivo de claves privadas para la autenticación, busca la ubicación del archivo de clave privada.

    Por ejemplo, consulta la siguiente captura de pantalla:

    Configuración de la ruta de acceso al archivo my-ssh-key.ppk en el campo del archivo de clave privada.

  8. Haz clic en Abrir para abrir una terminal con una conexión a tu instancia.

Después de conectarte, usa esta terminal para ejecutar comandos en la instancia. Cuando termines, ejecuta el comando exit para desconectarte de la instancia.

Sistema operativo Chrome (aplicación SSH)

Las Chromebook o sistemas operativos con Chrome instalado con compatibles con Secure Shell como cliente SSH. Para conectarte a instancias de la app de Secure Shell, sigue estos pasos:

  1. Si aún no lo has hecho, proporciona tu clave SSH pública a una instancia mediante una de las opciones disponibles. Debes hacer esto para continuar.

  2. Instala Secure Shell en tu Chromebook o en el navegador Chrome si aún no lo has hecho.

  3. En Google Cloud Console, ve a la página Instancias de VM y busca la dirección IP externa de la instancia a la que quieres conectarte. Mantén disponible la dirección IP externa para los pasos posteriores.

    Ve a la página Instancias de VM

  4. Abre la app de Secure Shell en una pestaña del navegador Chrome. Para acceder a las Apps de Chrome, escribe chrome://apps en la barra de direcciones.

  5. Ingresa el nombre de usuario asociado con el par de claves SSH y la dirección IP externa para la instancia a la que deseas conectarte con el siguiente formato:

     username@external-ip
     

    Reemplaza lo siguiente:

    • username: El nombre de usuario del usuario que se conecta a la instancia. Este debe ser el nombre de usuario que especificaste cuando creaste la llave SSH.
    • external-ip: La dirección IP externa de la instancia a la que deseas conectarte.
  6. En el campo Identidad, selecciona el archivo de claves SSH privada que deseas usar para conectarte a la instancia. Si es necesario, haz clic en Importar para seleccionar un archivo de claves privadas de tu estación de trabajo local.

  7. Haz clic en Conectar para conectarte a la instancia.

Después de conectarte, usa esta terminal para ejecutar comandos en la instancia. Cuando termines, ejecuta el comando exit para desconectarte de la instancia.

Otras opciones de SSH

Además de las detalladas con anterioridad, existen otras opciones para conectarte a una instancia con SSH, como las que se muestran a continuación:

Conéctate a instancias que no tienen direcciones IP externas

Si tienes instancias aisladas que no tienen una dirección IP externa, puedes conectarte a esas instancias con sus direcciones IP internas en una red de VPC de Google Cloud. Por ejemplo, puedes conectarte a instancias de VM que aíslas de manera intencional desde redes externas mediante los siguientes métodos:

Conéctate a través de una conexión de VPN

Para usar una red privada virtual (VPN) a fin de conectarte a una instancia sin una dirección IP externa, haz lo siguiente:

  • Debes usar una computadora que pueda acceder a la instancia de VM a través de un túnel de Cloud VPN.

    Por ejemplo, es posible que tengas una VPN que tu red local comparte con tu VPC de Google Cloud. Si es así, conéctate a la instancia mediante la herramienta de línea de comandos de gcloud, SSH en Linux y macOS, o mediante los clientes SSH de terceros, como PuTTY en Windows.

Consulta las siguientes pestañas para obtener más detalles:

gcloud

Para conectarte a una instancia sin una dirección IP externa, usa el comando gcloud compute ssh con la marca --internal-ip.

  1. En Google Cloud Console, ve a la página Instancias de VM y busca la dirección IP interna de la instancia a la que quieres conectarte.

    Ve a la página Instancias de VM

  2. Conéctate a la instancia.

    gcloud compute ssh internal-instance-name \
    --zone zone \
    --internal-ip
    

    Reemplaza lo siguiente:

    • internal-instance-name: El nombre de la instancia a la que deseas conectarte.
    • zone: El nombre de la zona en la que se encuentra la instancia.
  3. Después de conectarte, usa esta terminal para ejecutar comandos en la instancia. Cuando termines, ejecuta el comando exit para desconectarte de la instancia.

Linux y macOS

Para conectarte a una instancia sin una dirección IP externa desde estaciones de trabajo Linux o macOS, haz lo siguiente:

  1. Proporciona tu llave SSH pública a una instancia mediante una de las opciones disponibles. Debes hacer esto para continuar.

  2. En tu máquina local, inicia ssh-agent para que administre tus llaves SSH:

    $ eval ssh-agent $SHELL
    
  3. Usa el comando ssh-add para cargar tu llave SSH privada desde tu computadora local al agente y usa tu llave SSH privada para la autenticación de todos los comandos SSH. Reemplaza private-key por el nombre del archivo de claves privadas.

    $ ssh-add ~/.ssh/private-key
    
  4. En Google Cloud Console, ve a la página Instancias de VM y busca la dirección IP interna de la instancia a la que quieres conectarte.

    Ir a la página Instancias de VM

  5. En una terminal local, usa el comando ssh junto con el nombre de usuario asociado con tu llave SSH privada y la dirección IP interna de la instancia a la que deseas conectarte. Por ejemplo:

    $ ssh username@internal-instance-ip-address

    Reemplaza los siguientes elementos:

    • username: El nombre de usuario del usuario que se conecta a la instancia. Este debe ser el nombre de usuario que especificaste cuando creaste la llave SSH.
    • internal-instance-ip-address: La dirección IP interna de la instancia a la que deseas conectarte.

Después de conectarte, usa esta terminal para ejecutar comandos en la instancia. Cuando termines, ejecuta el comando exit para desconectarte de la instancia.

Windows (PuTTY)

Para conectarte a una instancia sin una dirección IP externa desde estaciones de trabajo de Windows, sigue estos pasos:

  1. Si aún no lo has hecho, proporciona tu clave SSH pública a una instancia mediante una de las opciones disponibles. Debes hacer esto para continuar.

  2. En Google Cloud Console, ve a la página Instancias de VM y busca la dirección IP interna de la instancia a la que quieres conectarte.

    Ve a la página Instancias de VM

  3. Sigue los pasos anteriores para conectarte a una instancia mediante Putty desde Windows, pero realiza el siguiente cambio:

    • Cuando se te indique especificar una dirección IP externa, especifica la dirección interna de la instancia a la que deseas conectarte.

Después de conectarte, usa esta terminal para ejecutar comandos en la instancia. Cuando termines, ejecuta el comando exit para desconectarte de la instancia.

Conéctate mediante un host de bastión

Otro método para conectarse a una instancia que no tiene una dirección IP externa es conectarse mediante un host de bastión. El uso de un host de bastión también te permite conectarte a instancias en otras redes de VPC de intercambio de tráfico.

Para conectarte a una instancia mediante un Host de bastión desde Linux y macOS, usa la herramienta de línea de comandos de gcloud o SSH. Para conectarte desde Windows, usa un cliente SSH de terceros como PuTTY.

La conexión a otras instancias desde un host de bastión requiere una llave SSH privada. Hay varias formas de gestionar esto:

  • Instala la herramienta de línea de comandos de gcloud y configúrala para que administre tus claves privadas.
  • Redirecciona tu clave privada a la instancia del host de bastión mediante la habilitación del redireccionamiento de agentes en el cliente SSH.

Consulta los siguientes ejemplos para ver los pasos completos:

gcloud

La herramienta de línea de comandos de gcloud te permite conectarte a instancias que no tienen direcciones IP externas sin reenviar tus llaves SSH privadas al host de bastión. Para ello, instala gcloud en tu estación de trabajo local y en la instancia de host de bastión, en caso de que aún no lo hayas hecho.

Si deseas usar la herramienta de línea de comandos de gcloud para conectarte a una instancia que no tiene una dirección IP externa, realiza lo siguiente:

  1. Establece un nivel de acceso de lectura/escritura a la API de Compute Engine para la cuenta de servicio en tu instancia del Host de bastión mediante la inclusión de --scopes compute-rw en tu comando. Para obtener más información, consulta Cambia la cuenta de servicio y los niveles de acceso para una instancia.

  2. Otorga los permisos de IAM necesarios para permitir que tu host de bastión acceda a tu llave SSH pública mediante el uso del Acceso al SO (recomendado) o de los metadatos del proyecto. Usa uno de los siguientes procedimientos:

    La cuenta de servicio de tu host de bastión ahora puede aplicar tu llave SSH pública.

  3. Conéctate a la instancia del host de bastión de Linux: Reemplaza external-instance-name por el nombre de la instancia de host de bastión que usas para obtener acceso a la red interna.

    gcloud compute ssh external-instance-name
    
  4. Desde la instancia del host de bastión de Linux, usa el comando gcloud compute ssh con la marca --internal-ip para conectarte a las instancias mediante tus direcciones IP internas. Reemplaza internal-instance-name por el nombre de la instancia a la que deseas conectarte.

    gcloud compute ssh internal-instance-name --internal-ip
    

Después de conectarte, usa esta terminal para ejecutar comandos en la instancia. Cuando termines, ejecuta el comando exit para desconectarte de la instancia.

Linux y macOS

Si necesitas redireccionar Llaves privadas a la instancia del Host de bastión, debes agregar tus Llaves al ssh-agent. Luego, usa el comando gcloud compute ssh o el comando ssh para establecer la conexión inicial con el Host de bastión y redireccionar las Llaves en el agente SSH. Este proceso solo funciona en estaciones de trabajo Linux y macOS. Si necesitas redireccionar Llaves privadas a un Host de bastión desde una estación de trabajo de Windows, sigue las instrucciones de PuTTY.

Para conectarte a una instancia sin una dirección IP externa desde estaciones de trabajo Linux o macOS, sigue estos pasos:

  1. Proporciona tu Llave SSH pública con una de las opciones disponibles. Asegúrate de proporcionar esta Llave SSH pública a la instancia del Host de bastión de Linux y a la instancia sin una dirección IP externa.

  2. En tu máquina local, inicia ssh-agent para que administre tus llaves SSH:

    $ eval ssh-agent $SHELL
    
  3. Usa el comando ssh-add para cargar la llave SSH privada de tu computadora local en el agente y úsala a fin de autenticar todos los comandos SSH. Reemplaza private-key por el nombre del archivo de claves privadas.

    $ ssh-add ~/.ssh/private-key
    
  4. Busca la dirección IP externa de la instancia del host de bastión de Linux y busca la dirección IP interna de la instancia interna a la que deseas conectarte. Puedes encontrar las direcciones en las columnas IP externa o IP interna en la página Instancias de VM.

    Ve a la página Instancias de VM

  5. Conéctate a la instancia del Host de bastión de Linux con ssh o gcloud compute ssh. Para cualquiera de las opciones, incluye el argumento -A con el fin de habilitar el redireccionamiento del agente de autenticación.

    Conéctate a la instancia del host de bastión de Linux y redirecciona tus claves privadas con ssh.

    $ ssh -A username@bastion-host-external-ip

    Reemplaza los siguientes elementos:

    • username: El nombre adjunto a tu llave SSH.
    • bastion-host-external-ip: La dirección IP externa de la instancia del host de bastión que usas para obtener acceso a la red interna.

    Como opción, puedes conectarte a la instancia del host de bastión y redireccionar tus claves privadas con el comando gcloud compute ssh. Esta opción permite conectarte a la instancia de host de bastión mediante la herramienta de línea de comandos de gcloud y, luego, usar la ssh regular con las credenciales reenviadas cuando te conectas a direcciones IP internas. Reemplaza bastion-host-instance-name por el nombre de la instancia de host de bastión que usas para obtener acceso a la red interna.

    gcloud compute ssh --ssh-flag="-A" bastion-host-instance-name
    
  6. Desde la instancia de host de bastión de Linux, conéctate a la instancia que no tenga una dirección IP externa mediante SSH.

    $ ssh username@internal-instance-ip-address

    Reemplaza los siguientes elementos:

    • username: El nombre adjunto a tu llave SSH.
    • internal-instance-ip-address: La dirección IP interna de la instancia a la que deseas conectarte.

Después de conectarte, usa esta terminal para ejecutar comandos en la instancia. Cuando termines, ejecuta el comando exit para desconectarte de la instancia.

Windows

Para conectarte a una instancia sin una dirección IP externa desde estaciones de trabajo de Windows, sigue estos pasos:

  1. Proporciona tu Llave SSH pública con una de las opciones disponibles. Asegúrate de proporcionar esta Llave SSH pública a la instancia del Host de bastión de Linux y a la instancia sin una dirección IP externa.

  2. Busca la dirección IP externa de la instancia del host de bastión de Linux y busca la dirección IP interna de la instancia interna a la que deseas conectarte. Puedes encontrar las direcciones en las columnas IP externa o IP interna en la página Instancias de VM.

    Ir a la página Instancias

  3. Conéctate a la instancia del Host de bastión de Linux con PuTTY. Para pasar tu llave SSH privada al host de bastión, habilita la configuración Allow agent forwarding (Permitir redireccionamiento de agentes), como se muestra en la siguiente captura de pantalla:

    Permitir el redireccionamiento de agentes para la instancia a la que te estás conectando.

  4. Conéctate desde la instancia del host de bastión de Linux a la instancia que no tiene una dirección IP externa mediante SSH:

    $ ssh username@internal-ip-address
    

    Reemplaza los siguientes elementos:

    • username: El nombre de usuario del usuario que se conecta a la instancia. Este debe ser el nombre de usuario que especificaste cuando creaste la llave SSH.
    • internal-ip-address: La dirección IP interna de la instancia a la que deseas conectarte.

    Después de conectarte, usa esta terminal para ejecutar comandos en la instancia. Cuando termines, ejecuta el comando exit para desconectarte de la instancia.

Conéctate mediante IAP

Mediante el uso de SSH con la función de redireccionamiento de TCP de IAP, se establece una conexión SSH dentro de HTTPS. La función de redireccionamiento de TCP de IAP la envía a la instancia remota.

  1. Otorga la función roles/iap.tunnelResourceAccessor al usuario que desea conectarse a la VM.

  2. Conéctate a la VM.

    gcloud compute ssh instance-name --zone zone
    

    Reemplaza lo siguiente:

    • instance-name: El nombre de la instancia a la que deseas conectarte.
    • zone: El nombre de la zona en la que se encuentra la instancia.

Para obtener más información, además de cómo configurar las reglas de acceso adaptado al contexto y acceder a otros puertos TCP en la VM, consulta Usa el reenvío de TCP.

Conéctate a instancias como usuario raíz

De forma predeterminada, las imágenes públicas y los sistemas operativos más comunes no permiten el acceso raíz mediante SSH. Las instancias permiten conectarte como raíz mediante SSH solo si las configuras para que funcionen de esa manera.

Como práctica recomendada, el archivo de configuración SSH /etc/ssh/sshd_config tiene el parámetro PermitRootLogin establecido como no. Debido a este parámetro, no puedes conectarte a una instancia como usuario raíz, incluso si especificas una llave SSH para root en el proyecto o en los metadatos de instancia. Si un usuario requiere permisos de raíz, pueden obtener esos permisos con la ejecución de comandos mediante sudo.

Si configuraste una instancia para permitir SSH como usuario raíz y configurar una llave SSH para el usuario raíz en esa instancia, puedes conectarte como raíz mediante el comando gcloud compute ssh con root@ especificado antes del nombre de la instancia:

gcloud compute ssh --project project-id --zone zone root@instance-name

Reemplaza los siguientes elementos:

  • project-id: El ID del proyecto que contiene la instancia.
  • zone: El nombre de la zona en la que se encuentra la instancia.
  • instance-name: El nombre de la instancia

Conéctate a instancias de Windows mediante la terminal de PowerShell

Si tienes una estación de trabajo Windows con PowerShell, puedes conectarte a las instancias de Windows Server mediante una sesión remota de PowerShell. Este proceso es similar a que te conectes a una instancia de Linux mediante SSH.

  1. Si aún no creaste un nombre de usuario y una contraseña en la instancia remota de Windows, crea o restablece tu contraseña de Windows.

  2. Agrega una regla de firewall que abra el puerto 5986 en la red de VPC de Google Cloud donde se encuentra tu instancia de Windows Server.

  3. En tu estación de trabajo local, abre la terminal de PowerShell.

  4. De manera opcional, puedes inicializar una variable para contener tus credenciales de usuario, de modo que no tengas que ingresarlas cada vez que te conectes a la instancia. Si omites este paso, se te pedirá tu nombre de usuario y contraseña más adelante.

    PS C:\> $credentials = Get-Credential
    
  5. Usa el comando Enter-PSSession con el fin de iniciar una sesión remota de PowerShell y, luego, incluye las marcas para usar SSL y omitir las verificaciones de credenciales. Reemplaza ip-address por la dirección IP externa, el nombre de DNS o el nombre de la computadora Windows de la instancia a la que deseas conectarte.

    PS C:\> Enter-PSSession -ComputerName ip-address -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) -Credential $credentials
    

Después de conectarte, el símbolo del sistema cambia para incluir la dirección IP de la instancia remota de Windows. Ahora puedes usar la terminal para ejecutar comandos de PowerShell en la instancia remota de Windows Server.

Como alternativa al comando Enter-PSSession, puedes ejecutar Invoke-Command con la marca -ScriptBlock para ejecutar comandos de PowerShell en la instancia remota sin establecer una sesión interactiva.

PS C:\> Invoke-Command -ComputerName ip-address -ScriptBlock { script } -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) -Credential $credentials

Reemplaza los siguientes elementos:

  • ip-address: La dirección IP, el nombre de DNS o el nombre de la computadora Windows de la instancia a la que deseas conectarte.
  • script: Uno o más comandos para ejecutar en la instancia remota. Por ejemplo, especifica Get-EventLog -log "Windows PowerShell" para obtener una lista de eventos de registro.

Realiza una conexión manual entre instancias como una cuenta de servicio

En algunos casos, es posible que desees conectarte a instancias y ejecutar comandos como si fueras la cuenta de servicio asociada con esa instancia. El comando gcloud compute ssh te permite usar las credenciales SSH de una cuenta de servicio para conectarte de una instancia a otra y, de ese modo, puedes ejecutar comandos en la segunda instancia como la cuenta de servicio.

La herramienta de línea de comandos de gcloud genera un par de llaves SSH de forma automática y lo asocia con la cuenta de servicio en tu instancia. Después de conectarte a otra instancia como la cuenta de servicio, puedes ejecutar comandos adicionales gcloud con los permisos de IAM de la cuenta de servicio.

Para este ejemplo, supongamos que tienes el siguiente entorno:

  • Instancia A:
    • La instancia A tiene una cuenta de servicio asociada.
    • La cuenta de servicio asociada con la instancia A tiene las funciones de Acceso al SO necesarias y configuradas a nivel de proyecto o, en particular, para el recurso de la instancia B.
    • La cuenta de servicio tiene el alcance https://www.googleapis.com/auth/cloud-platform para toda la plataforma en la instancia A.
  • Instancia B:
    • La instancia B se ejecuta en la misma red interna que la instancia A o en una red con reglas de firewall que permiten conexiones SSH desde la instancia A.
    • La función de Acceso al SO está habilitada en tu proyecto o, en particular, en la instancia B.
  • Tu cuenta de usuario personal tiene las siguientes características:
    • Tu cuenta tiene la función roles/iam.serviceAccountUser para la cuenta de servicio asociada con la instancia A.
    • Tu cuenta tiene acceso SSH específico a la instancia A.
    • Tu cuenta no tiene acceso a la instancia B. La cuenta de servicio es la única cuenta con funciones de Acceso al SO necesarias para conectarse a la instancia B.

Conéctate a la instancia A y ejecuta comandos como la cuenta de servicio. En este paso necesitas la función roles/iam.serviceAccountUser para esa cuenta de servicio:

  1. Conéctate a la instancia A como el usuario con la función roles/iam.serviceAccountUser. Por ejemplo, puedes usar la herramienta de línea de comandos de gcloud para establecer esta primera conexión SSH:

    my-username@localworkstation:~$ gcloud compute ssh instance-a \
    --project my-project \
    --zone us-east1-d
    
  2. Después de establecer la conexión SSH a la instancia A, puedes ejecutar comandos como si fueras la cuenta de servicio siempre que tengas la función roles/iam.serviceAccountUser. En este ejemplo, ejecuta la herramienta de gcloud en la instancia A para crear una conexión en cadena SSH a la instancia B. La herramienta de gcloud identifica que la instancia B está habilitada para usar Acceso al SO y también identifica que la cuenta de servicio tiene las funciones de IAM necesarias para establecer la conexión SSH a la instancia B.

    my-username@instance-a:~$ gcloud compute ssh instance-b \
    --project my-project \
    --zone us-east1-d
    
    WARNING: Using OS Login user [sa_113491385848438711199] instead of default user [my-username]
    Linux instance-b 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u6 (2018-10-08) x86_64
    ⋮
    
  3. Ahora estás conectado a la instancia B como la cuenta de servicio y puedes ejecutar comandos como esa cuenta de servicio.

    sa_113491385848438711199@instance-b:~$ uname -a
    
    Linux instance-b 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u6 (2018-10-08) x86_64 GNU/Linux
    

Próximos pasos