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, en los casos en los que necesites administrar tus propias credenciales, usar herramientas de terceros o conectarte mediante rutas de conexión alternativas, los siguientes métodos avanzados podrían satisfacer tus necesidades mejor que los métodos estándar.

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

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 que se describen en la documentación sobrecómo conectarse 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 su archivo de llaves SSH públicas, consulta la documentación sobre cómo crear una nueva llave SSH y cómo encontrar una llave SSH.

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

  • (Recomendado) Habilita Acceso al SO y usa las funciones de IAM para proporcionar tu llave SSH pública a la instancia a través de tu Cuenta de Google o una cuenta de usuario administrada. Para ello, sigue los pasos que aparecen en la documentación sobre cómo configurar Acceso al SO a fin de habilitarlo y crear las funciones. Luego, consulta la documentación sobre cómo agregar llaves SSH a una cuenta de usuario para agregar tu llave pública a la función que deseas usar con el fin de conectarte a la instancia.

  • (No recomendado) Editar los metadatos de la instancia o el proyecto para agregar o quitar de forma manual las llaves SSH. Consulta la documentación sobre cómo administrar 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 explicado antes no te convenga. Consulta Riesgos de la administración manual de claves.

  • Si otra persona que ya tiene acceso (como un administrador de sistemas de tu organización) administra tu instancia, 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 tu 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

Después de proporcionar tu llave SSH pública a la instancia, puedes usar herramientas SSH de terceros junto con tu llave SSH privada correspondiente para conectarte.

Para conectarte, sigue 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 siguiente comando integrado ssh en una terminal local:

  1. Si aún no lo has hecho, proporciona tu llave 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.

    Ir a la página Instancias

  3. En una terminal local, usa el comando ssh junto con tu archivo de llave SSH privada, 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 llave 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.

    Ir a la página Instancias

  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 en la página de configuración de conexión, ingresa el nombre de usuario asociado con la llave SSH y la dirección IP externa de la instancia a la que deseas conectarte con el siguiente formato:

    username@external-ip

    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.
    • external-ip: la dirección IP externa de la instancia a la que deseas conectarte.

      Por ejemplo, consulta la siguiente captura de pantalla:

      Ingresa jane_doe@203.0.113.2 el campo Nombre del host a modo de ejemplo 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 usan la app de 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 llave SSH pública a una instancia mediante una de las opciones disponibles. Debes hacer esto para continuar.

  2. Si aún no lo has hecho, instala la app de Secure Shell en tu Chromebook o en el navegador Chrome.

  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.

    Ir a la página Instancias

  4. Abre la app de Secure Shell en una pestaña del navegador Chrome.

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

    username@external-ip

    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.
    • external-ip: la dirección IP externa de la instancia a la que deseas conectarte.
  6. En el campo Identidad, selecciona el archivo de llaves SSH privadas 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 intencionalmente de redes externas mediante los siguientes métodos:

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

Si quieres usar una red privada virtual (VPN) para conectarte a una instancia sin una dirección IP externa, debes tener una computadora que ya esté conectada a la misma VPN que la instancia a la que deseas acceder. 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 los clientes SSH de terceros, como PuTTY en Windows.

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

gcloud

Conéctate a una instancia sin una dirección IP externa con el comando gcloud compute ssh y la marca --internal-ip. Reemplaza internal-instance-name con 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

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 con 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 úsala a fin de autenticar todos los comandos SSH. Reemplaza private-key con 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](https://console.cloud.google.com/compute/instances) {: class="button button-primary" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="body" track-metadata-end-goal="attachDisk"}

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

    Ir a la página Instancias

  3. Sigue los pasos anteriores para conectarte a una instancia con 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 administrar tus llaves privadas.
  • Redirecciona tu llave privada a la instancia del Host de bastión mediante la habilitación del redireccionamiento de agentes en tu cliente SSH.

Consulta los siguientes pasos 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 no lo hayas hecho.

Si deseas utilizar 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 permiso 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 la documentación sobre cómo cambiar la cuenta de servicio y los permisos 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 Acceso al SO (recomendado) o 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 con el nombre de la instancia de Host de bastión que utilizas 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 con tus direcciones IP internas: Reemplaza internal-instance-name con 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 tu llave SSH privada de tu computadora local en el agente y úsala a fin de autenticar todos los comandos SSH. Reemplaza private-key con 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.

    Ir a la página Instancias

  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 llaves 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 estás usando para obtener acceso a la red interna.

    Como opción, puedes conectarte a la instancia del Host de bastión y redireccionar tus llaves privadas con el comando gcloud compute ssh. Esta opción te permite conectarte a la instancia de Host de bastión mediante la herramienta de línea de comandos de gcloud y, luego, usar ssh regular con las credenciales reenviadas cuando te conectas a direcciones IP internas. Reemplaza bastion-host-instance-name con el nombre de la instancia de Host de bastión que utilizas 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 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.

Para obtener información sobre cómo conectarse a una instancia remota con IAP, consulta la documentación sobre cómo usar de IAP para redirección 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 te permiten conectarte como raíz con 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 tu proyecto o en tus metadatos de instancia. Si un usuario requiere permisos de raíz, se pueden obtener esos permisos con la ejecución de comandos mediante sudo.

Si configuraste una instancia a fin de 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 una instancia de Windows Server mediante una sesión remota de PowerShell. Este proceso es similar a si te conectaras 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 en la que 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, el sistema 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 con la dirección IP externa, el nombre del DNS o el nombre de la computadora con 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 mensaje del comando 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 del DNS o el nombre de la computadora de 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 de gcloud adicionales 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 permiso 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:
    • 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 gcloud en la instancia A para crear una conexión en cadena SSH a la instancia B. La herramienta 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 SSH en 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
        

Qué sigue