Conéctate a instancias con métodos avanzados

Si necesitas administrar tus propias credenciales, usar herramientas de terceros o conectarte a una instancia mediante rutas de conexión alternativas, los siguientes métodos avanzados pueden satisfacer tus necesidades mejor que los métodos estándar descritos en Conéctate a instancias.

Existen varios métodos avanzados 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 sabes cómo generar un par de Llaves SSH propio y cómo ubicar tu archivo de Llaves SSH públicas, consulta Crea una Llave SSH nueva y Ubica una Llave SSH.

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

  • (Recomendado) Habilita el acceso a 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. Si quieres hacer esto, sigue los pasos en la página Configura el acceso a SO para habilitar el acceso a SO y crear las funciones. Luego, consulta la secció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) Agrega y quita Llaves 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 con acceso a SO explicado antes no te convenga. Para obtener más información, consulta los Riesgos de la administración de claves manual.

  • 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 conecte a tu instancia, copie tu archivo de Llaves públicas al directorio principal de tu instancia y cambie los permisos del archivo, pero esto dependerá de cómo se administran la 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, haz clic en la pestaña de tu sistema operativo local y sigue estos pasos:

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 hiciste, proporciona tu Llave SSH pública a una instancia con una de las opciones disponibles. No podrás continuar si no realizas este paso.

  2. En Console, ve a la página de instancias (o haz clic en el botón a continuación) y busca la dirección IP externa para la instancia a la que deseas conectarte.

    Ir a la página Instancias

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

    ssh -i [PATH_TO_PRIVATE_KEY] [USERNAME]@[EXTERNAL_IP_ADDRESS]

    Esta es una explicación del comando anterior:

    Después de conectarte, ejecuta comandos en tu instancia con esta terminal. Cuando hayas terminado de usar la instancia, desconéctate con el comando exit.

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 hiciste, proporciona tu Llave SSH pública a una instancia con una de las opciones disponibles. No podrás continuar si no realizas este paso.

  2. En Console, ve a la página de instancias (o haz clic en el botón a continuación) y busca la dirección IP externa para la instancia a la que deseas conectarte. Mantenla disponible para los pasos siguientes.

    Ir a la página Instancias

  3. Descarga putty.exe si aún no lo hiciste.

  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_ADDRESS]

    Esta es una explicación del comando anterior:

    • [USERNAME] es 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_ADDRESS] es la dirección IP externa de la instancia a la que deseas conectarte.

      Por ejemplo, consulta la siguiente captura de pantalla:

      Establece el campo Nombre de host con jane_doe@203.0.113.2

  6. En el menú Categoría (Category) de la izquierda, navega hasta Conexión (Connection) > SSH > Autenticación (Auth).

  7. En el campo Archivo de Llaves privadas para la autenticación (Private key file for authentication), busca la ubicación del archivo de Llaves privadas.

    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 Llaves privadas

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

    Después de conectarte, ejecuta comandos en tu instancia con esta terminal. Cuando hayas terminado de usar la instancia, desconéctate con el comando exit.

Chrome (app de 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 hiciste, proporciona tu Llave SSH pública a una instancia con una de las opciones disponibles. No podrás continuar si no realizas este paso.

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

  3. En Console, ve a la página de instancias (o haz clic en el botón a continuación) y busca la dirección IP externa para la instancia a la que deseas conectarte. Mantenla disponible para los pasos siguientes.

    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_ADDRESS]

    Esta es una explicación del comando anterior:

    • [USERNAME] es 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_ADDRESS] es 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 Llaves privadas de tu estación de trabajo local.

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

    Después de conectarte, ejecuta comandos en tu instancia con esta terminal. Cuando hayas terminado de usar la instancia, desconéctate con el comando exit.

Otras opciones de SSH

Además de las detalladas con anterioridad, existen otras opciones para conectarte a una instancia con SSH, como las siguientes:

Conéctate a una instancia que no tiene una dirección IP externa

Si tienes una instancia aislada que no tiene una dirección IP externa (como una instancia que está aislada de redes externas de forma intencional), puedes conectarte a ella con tu dirección IP interna en una red de nube privada virtual (VPC) de Google Cloud Platform con los siguientes métodos.

Conéctate mediante una 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 GCP. Si es así, conéctate a la instancia mediante la herramienta de línea de comandos gcloud, SSH en Linux y macOS, o los clientes SSH de terceros, como PuTTY en Windows.

Para obtener más información, consulta las siguientes pestañas:

gcloud

Conéctate a una instancia sin una dirección IP externa con el comando gcloud compute ssh y la marca --internal-ip.

gcloud compute ssh [INTERNAL_INSTANCE_NAME] --internal-ip

En este caso, [INTERNAL_INSTANCE_NAME] es el nombre de la instancia a la que deseas conectarte.

Después de conectarte, ejecuta comandos en tu instancia con esta terminal. Cuando hayas terminado de usar la instancia, desconéctate con el comando exit.

Linux y macOS

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

  1. Proporciona tu Llave SSH pública a una instancia con una de las opciones disponibles. No podrás continuar si no realizas este paso.

  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.

    $ ssh-add ~/.ssh/[PRIVATE_KEY]
    

    En este caso, [PRIVATE_KEY] es el nombre de tu archivo de Llaves privadas.

  4. En Console, ve a la página de instancias (o haz clic en el botón a continuación) y busca la dirección IP interna de la instancia a la que deseas conectarte.

    Ir a la página Instancias

  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]

    Esta es una explicación del comando anterior:

    • [USERNAME] es 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] es la dirección IP interna de la instancia a la que deseas conectarte.

Después de conectarte, ejecuta comandos en tu instancia con esta terminal. Cuando hayas terminado de usar la instancia, desconéctate con el comando exit.

Windows (PuTTY)

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

  1. Si aún no lo hiciste, proporciona tu Llave SSH pública a una instancia con una de las opciones disponibles. No podrás continuar si no realizas este paso.

  2. En Console, ve a la página de instancias (o haz clic en el botón a continuación) y busca la dirección IP interna de la instancia a la que deseas conectarte.

    Ir a la página Instancias

  3. Conéctate a una instancia mediante PuTTY desde Windows, pero especifica la dirección interna de la instancia a la que deseas conectarte en lugar de especificar una dirección IP externa.

    Después de conectarte, ejecuta comandos en tu instancia con esta terminal. Cuando hayas terminado de usar la instancia, desconéctate con el comando exit.

Conéctate mediante un Host de bastión

Otro método para conectarte a una instancia que no tiene una dirección IP externa es conectarte 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.

Al igual que con los otros métodos, 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.

gcloud

La herramienta de línea de comandos de gcloud te permite conectarte a instancias que no tienen direcciones IP externas sin redireccionar tus Llaves SSH privadas al Host de bastión. Para hacer esto, instala gcloud en tu estación de trabajo local y en la instancia del Host de bastión, si aún no lo hiciste.

Si quieres usar la herramienta de línea de comandos de gcloud para conectarte a una instancia que no tiene una dirección IP externa, sigue estos pasos:

  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 acceso a SO (recomendado) o los metadatos del proyecto.

    La cuenta de servicio de tu Host de bastión ahora debería poder usar tu Llave SSH pública.

  3. Conéctate a la instancia del Host de bastión de Linux:

    gcloud compute ssh [EXTERNAL_INSTANCE_NAME]
    

    En el comando anterior, [EXTERNAL_INSTANCE_NAME] es el nombre de la instancia del Host de bastión que estás usando para obtener acceso a la red interna.

  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:

    gcloud compute ssh [INTERNAL_INSTANCE_NAME] --internal-ip
    

    En el comando anterior, [INTERNAL_INSTANCE_NAME] es el nombre de la instancia a la que deseas conectarte.

Después de conectarte, ejecuta comandos en tu instancia con esta terminal. Cuando hayas terminado de usar la instancia, desconéctate con el comando exit.

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 desde tu computadora local al agente y usa tu Llave SSH privada para la autenticación de todos los comandos SSH.

    $ ssh-add ~/.ssh/[PRIVATE_KEY]
    

    En este caso, [PRIVATE_KEY] es el nombre de tu archivo de Llaves privadas.

  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.

    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_ADDRESS]

    Esta es una explicación del comando anterior:

    • [USERNAME] es el nombre adjunto a tu Llave SSH.
    • [BASTION_HOST_EXTERNAL_IP_ADDRESS] es 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 del Host de bastión mediante la herramienta de línea de comandos de gcloud y, luego, usar ssh normal con las credenciales redireccionadas cuando te conectas a direcciones IP internas.

    gcloud compute ssh --ssh-flag="-A" [BASTION_HOST_INSTANCE_NAME]
    

    En el comando anterior, [BASTION_HOST_INSTANCE_NAME] es el nombre de la instancia del Host de bastión que estás usando para obtener acceso a tu red interna.

  6. Desde la instancia del 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]

    Esta es una explicación del comando anterior:

    • [USERNAME] es el nombre adjunto a tu Llave SSH.
    • [INTERNAL_INSTANCE_IP_ADDRESS] es la dirección IP interna de la instancia a la que deseas conectarte.

Después de conectarte, ejecuta comandos en tu instancia con esta terminal. Cuando hayas terminado de usar la instancia, desconéctate con el comando exit.

Windows (PuTTY)

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.

    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 (Allow agent forwarding), 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]
    

    Esta es una explicación del comando anterior:

    • [USERNAME] es 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] es la dirección IP interna de la instancia a la que deseas conectarte.

Después de conectarte, ejecuta comandos en tu instancia con esta terminal. Cuando hayas terminado de usar la instancia, desconéctate con el comando exit.

Conéctate mediante Cloud IAP

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

Para obtener información sobre cómo conectarte a una instancia remota con Cloud IAP, consulta Uso de Cloud IAP para redirección de TCP.

Conéctate a una instancia como el usuario root

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 esta configuración de parámetros, 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, 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]

Esta es una explicación del comando anterior:

  • [PROJECT_ID] es el ID del proyecto que contiene la instancia.
  • [ZONE] es el nombre de la zona en la que se encuentra la instancia.
  • [INSTANCE_NAME] es el nombre de la instancia.

Conéctate a una instancia de Windows con 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 que te conectes a una instancia de Linux mediante SSH.

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

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

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

  4. Como opción, puedes inicializar una variable para almacenar tus credenciales de usuario con el fin de que no debas 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.

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

    En el comando anterior, [IP_ADDRESS] es la dirección IP externa, el nombre de DNS o el nombre de la computadora Windows para la instancia a la que deseas conectarte.

    Ir a la página Instancias

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

Esta es una explicación del comando anterior:

  • [IP_ADDRESS] es la dirección IP, el nombre de DNS o el nombre de la computadora Windows para la instancia a la que deseas conectarte.
  • [SCRIPT] puede ser 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, por lo que 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 a SO necesarias 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 a 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 las funciones de acceso a SO necesarias para conectarte 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 línea de comandos de gcloud en la instancia A para crear una conexión en cadena SSH a la instancia B. La herramienta de línea de comandos de gcloud identifica que la instancia B está habilitada para usar el acceso a SO y, también, identifica que la cuenta de servicio tiene las funciones de IAM necesarias para establecer una 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
    
    

Qué sigue

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Compute Engine