En este documento, se describe cómo conectarse a una instancia de máquina virtual (VM) a través de su dirección IP interna con una VM de host de bastión. Los hosts de bastión proporcionan un punto de entrada externo a una red de nube privada virtual (VPC) que contiene VMs sin direcciones IP externas. Cuando uses un host de bastión, primero conéctate a él y, luego, a la VM de destino.
Conectarte a una VM con su dirección IP interna es útil si la VM no tiene una dirección IP externa. Si la VM tiene una dirección IP externa, conéctate a la VM con su dirección IP externa. Si necesitas conectarte a una VM que no tiene direcciones IP externas y no puedes usar un host de bastión, revisa los demás métodos que se mencionan en Elige una opción de conexión para VMs de uso interno exclusivo.
Sistemas operativos compatibles
Compute Engine admite estos métodos de conexión para todas las imágenes públicas de Linux. Para imágenes de Fedora CoreOS, debes configurar el acceso SSH antes de poder usar estos métodos.
Crea una VM host de bastión
Crea una VM de Compute Engine dentro de la red de VPC de destino para que actúe como un host de bastión.
Console
Para crear una VM de host de bastión, haz lo siguiente:
En la consola de Google Cloud , ve a la página Crear una instancia.
Especifica los siguientes detalles de la VM:
Nombre: el nombre de tu VM.
Tipo de máquina: un tipo de máquina. Elige un tipo de máquina pequeño, como
e2-micro.Disco de arranque > Sistema operativo: cualquier SO Linux
Expande la sección Opciones avanzadas y sigue estos pasos:
En la sección Interfaces de red, selecciona la misma red de VPC y subred que la VM de destino.
En Dirección IPv4 externa, selecciona Efímera.
Para crear y, también, iniciar la VM, haz clic en Crear.
gcloud
Crea una VM de host de bastión con el
comando
gcloud compute instances create:
-
En la consola de Google Cloud , activa Cloud Shell.
En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.
Crea la VM del host de bastión mediante la ejecución del siguiente comando:
gcloud compute instances create BASTION_NAME \ --zone=ZONE \ --machine-type=e2-micro \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --network-interface=subnet=SUBNET
Reemplaza lo siguiente:
BASTION_NAME: Es el nombre de la VM del host de bastión.ZONE: Es la zona de la VM de host de bastión.IMAGE_FAMILY: Es una familia de imágenes de Linux.IMAGE_PROJECT: Es el proyecto de imagen que contiene la imagen.SUBNET: Es la misma subred de VPC que la VM de destino. Si usas la red de VPC predeterminada, estableceSUBNETendefault.
Conéctate a las VM
Para conectarte a una VM, completa los pasos en una de las siguientes pestañas.
gcloud
Conéctate a una VM a través de un host de bastión con SSH y ejecuta el
comando
gcloud compute ssh:
Conéctate a la VM del host de bastión mediante la ejecución del siguiente comando:
gcloud compute ssh BASTION_NAME \ --project=PROJECT_ID \ --zone=ZONEReemplaza lo siguiente:
BASTION_NAME: Es el nombre de la VM del host de bastión.PROJECT_ID: Es el ID del proyecto que contiene la VM de host de bastión.ZONE: Es el nombre de la zona en la que se encuentra la VM del host de bastión.
En la VM del host de bastión, conéctate a la VM de destino a través de su dirección IP interna con la marca
--internal-ip:gcloud compute ssh INSTANCE_NAME \ --zone=TARGET_ZONE \ --internal-ipReemplaza lo siguiente:
INSTANCE_NAME: el nombre de la VM a la que deseas conectarte.TARGET_ZONE: Es el nombre de la zona en la que se encuentra la VM de destino.
Cliente de OpenSSH
Para conectarte a una VM a través de un host de bastión desde un cliente de OpenSSH, haz lo siguiente:
- Si aún no agregaste una clave SSH, agrega una a la VM del host de bastión y a la VM de destino.
En la consola de Google Cloud , ve a la página Instancias de VM y busca la dirección IP externa de la VM del host de bastión y la dirección IP interna de la VM a la que deseas conectarte.
- Abre una terminal en tu estación de trabajo.
Conéctate a la VM del host de bastión ejecutando el siguiente comando:
ssh -A -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP
Reemplaza lo siguiente:
PATH_TO_PRIVATE_KEY: Es la ruta de acceso al archivo de clave SSH privada que corresponde a la clave pública que agregaste a la VM, como~/.ssh/my-ssh-keyo~/.ssh/google_compute_enginesi Google Cloud CLI generó la clave.USERNAME: tu nombre de usuario. Si administras las claves SSH en metadatos, el nombre de usuario es el que especificaste cuando creaste la clave SSH. En el caso de las cuentas de Acceso al SO, el nombre de usuario se define en tu perfil de Google, comocloudysanfrancisco_example_comocloudysanfrancisco.-
EXTERNAL_IP: Es la dirección IP externa de la VM del host de bastión.
Desde la VM del host de bastión, conéctate a la dirección IP interna de una VM con el siguiente comando:
ssh USERNAME@INTERNAL_IP
Reemplaza lo siguiente:
USERNAME: tu nombre de usuario. Si administras las claves SSH en metadatos, el nombre de usuario es el que especificaste cuando creaste la clave SSH. En el caso de las cuentas de Acceso al SO, el nombre de usuario se define en tu perfil de Google, comocloudysanfrancisco_example_comocloudysanfrancisco.INTERNAL_IP: Es la dirección IP interna de la VM.
App de PuTTY
Para conectarte a una VM a través de un host de bastión con PuTTY, haz lo siguiente:
- Si aún no agregaste una clave SSH, agrega una a la VM del host de bastión y a la VM de destino.
- Si tu estación de trabajo no tiene instalada la app de PuTTY, descarga los archivos de paquete de PuTTY.
En la consola de Google Cloud , ve a la página Instancias de VM y busca la dirección IP externa de la VM del host de bastión y la dirección IP interna de la VM a la que deseas conectarte.
- Abre la app de PuTTY. Se abrirá una ventana de configuración de conexión.
En el campo Nombre de host (o dirección IP), ingresa el nombre de usuario asociado con la clave SSH y la dirección IP externa de la VM de host de bastión. Usa el siguiente formato:
USERNAME@EXTERNAL_IP
Reemplaza lo siguiente:
USERNAME: tu nombre de usuario. Si administras las claves SSH en metadatos, el nombre de usuario es el que especificaste cuando creaste la clave SSH. En el caso de las cuentas de Acceso al SO, el nombre de usuario se define en tu perfil de Google, comocloudysanfrancisco_example_comocloudysanfrancisco.-
EXTERNAL_IP: Es la dirección IP externa de la VM del host de bastión.
- En el menú Categoría, ve a Conexión > SSH > Auth > Credenciales (o Conexión > SSH > Auth en versiones de PuTTY anteriores a la 0.78).
- En el campo Archivo de claves privadas para la autenticación, haz clic en
Explorar y selecciona el archivo de clave SSH privada
(
.ppk) que corresponde a la clave pública que agregaste a la VM. - En el menú Categoría, ve a Conexión > SSH > Auth y, en la sección Parámetros de autenticación, selecciona Permitir el reenvío de agentes.
- Haz clic en Abrir para conectarte a la VM del host de bastión.
Desde la VM del host de bastión, conéctate a la dirección IP interna de una VM con el siguiente comando:
ssh USERNAME@INTERNAL_IP
Reemplaza lo siguiente:
USERNAME: tu nombre de usuario. Si administras las claves SSH en metadatos, el nombre de usuario es el que especificaste cuando creaste la clave SSH. En el caso de las cuentas de Acceso al SO, el nombre de usuario se define en tu perfil de Google, comocloudysanfrancisco_example_comocloudysanfrancisco.INTERNAL_IP: Es la dirección IP interna de la VM.
Soluciona problemas
Si deseas encontrar métodos para diagnosticar y resolver conexiones SSH fallidas, consulta Soluciona problemas de SSH.
Próximos pasos
- Obtén más información sobre cómo administrar el acceso a las VMs.
- Obtén más información sobre cómo transferir archivos a las VMs.
- Obtén información sobre cómo funcionan las conexiones SSH a las VMs de Linux en Compute Engine.