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:
- Instancias de Linux:
- Instancias de Windows Server:
Antes de comenzar
- Si deseas usar los ejemplos de línea de comandos de esta guía, haz lo siguiente:
- Instala o actualiza a la última versión de la herramienta de línea de comandos de gcloud.
- Configura una región y zona predeterminadas.
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.
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.
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.
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:
[PATH_TO_PRIVATE_KEY]
es la ruta de acceso a tu archivo de Llaves SSH privadas.[USERNAME]
es el nombre de usuario del usuario que se conecta a la instancia. Si creaste tus Llaves SSH de forma manual, este debe ser el nombre de usuario que especificaste cuando creaste la Llave SSH.[EXTERNAL_IP_ADDRESS]
es la dirección IP externa de 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
.
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:
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.
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.
Descarga
putty.exe
si aún no lo hiciste.Inicia
putty.exe
para abrir PuTTY. Se abrirá una ventana de configuración de conexión.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:
En el menú Categoría (Category) de la izquierda, navega hasta Conexión (Connection) > SSH > Autenticación (Auth).
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:
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:
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.
Si aún no lo hiciste, instala la app de Secure Shell en la Chromebook o el navegador Chrome.
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.
Abre la app de Secure Shell en una pestaña del navegador Chrome.
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.
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.
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:
- Conexión SSH desde el navegador.
- El comando
gcloud compute ssh
. Para obtener más información, consulta la documentación de referencia de gcloud compute ssh.
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 a instancias mediante una conexión de VPN que tenga acceso a las direcciones IP internas de instancias en tu VPC de GCP.
- Conéctate mediante una instancia del Host de bastión para obtener acceso a la dirección IP interna en tu VPC de GCP. Luego, conéctate desde el Host de bastión a otras instancias en la misma red de VPC interna o a instancias en una red de VPC de intercambio de tráfico.
- Conéctate con Cloud Identity-Aware Proxy para redireccionar TCP con el fin de redireccionar una conexión SSH a una instancia remota.
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:
Proporciona tu Llave SSH pública a una instancia con una de las opciones disponibles. No podrás continuar si no realizas este paso.
En tu máquina local, inicia
ssh-agent
para que administre tus Llaves SSH:$ eval ssh-agent $SHELL
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.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.
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:
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.
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.
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:
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.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.
Acceso a SO (recomendado):
Metadatos del proyecto:
Otorga los permisos de IAM necesarios para que tus instancias editen metadatos.
Sugerencia: Puedes agregar la función de administrador de instancias de Compute Engine a tu cuenta de servicio.
La cuenta de servicio de tu Host de bastión ahora debería poder usar tu Llave SSH pública.
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.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:
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.
En tu máquina local, inicia
ssh-agent
para que administre tus Llaves SSH:$ eval ssh-agent $SHELL
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.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.
Conéctate a la instancia del Host de bastión de Linux con
ssh
ogcloud 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 degcloud
y, luego, usarssh
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.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:
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.
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.
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:
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.
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.
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.En tu estación de trabajo local, abre la terminal de PowerShell.
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
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.
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, especificaGet-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.
- Tu cuenta tiene la función
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:
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 degcloud
para establecer esta primera conexión SSH:my-username@localworkstation:~$ gcloud compute ssh instance-a --project my-project --zone us-east1-d
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 degcloud
en la instancia A para crear una conexión en cadena SSH a la instancia B. La herramienta de línea de comandos degcloud
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 ⋮
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
- Obtén más información sobre cómo administrar el acceso a las instancias para varios usuarios en una organización o un proyecto.
- Conéctate a instancias de VM de forma segura.
- Transfiere archivos a instancias de Linux