Conéctate a VMs de Linux mediante un host de bastión


En este documento, se describe cómo conectarse a una instancia de máquina virtual (VM) mediante su dirección IP interna con una VM del 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 mediante 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 mediante 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 Opciones de conexión para VM de uso interno exclusivo.

Sistemas operativos compatibles

Estos métodos de conexión son compatibles con todas las imágenes públicas de Linux que están disponibles en Compute Engine. 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 interna del clúster privado para que actúe como un host de bastión que pueda administrar el clúster.

Console

Para crear una VM de host de bastión, haz lo siguiente:

  1. En la console de Google Cloud, ve a la página Crea una instancia.

    Ir a Crear una instancia

    1. 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
  2. Expande la sección Opciones avanzadas y sigue estos pasos:

    1. En la sección Interfaces de red, selecciona la misma red de VPC y subred que la VM de destino.

    2. En Dirección IPv4 externa, selecciona Efímera.

  3. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

Crea una VM del host de bastión mediante el comando gcloud compute instances create:

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Crea la VM del host de bastión mediante la ejecución del siguiente comando:

    gcloud compute instances create VM_NAME \
      --zone=ZONE \
      --machine-type=e2-micro \
      --image-family=IMAGE_FAMILY \
      --image-project=IMAGE_PROJECT \
      --network-interface=subnet=SUBNET,address=""
    

    Reemplaza lo siguiente:

    • VM_NAME: El nombre de la VM
    • ZONE: Es la zona para la VM.
    • 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 VPC predeterminada, el SUBNET es default.

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 mediante SSH a través de un Host de bastión mediante la ejecución del comando gcloud compute ssh:

  1. Conéctate a la VM del host de bastión mediante la ejecución del siguiente comando:

    gcloud compute ssh BASTION_NAME

    Reemplaza BASTION_NAME por el nombre de la VM del host de bastión.

  2. En la VM del host de bastión, conéctate a la VM principal a través de su dirección IP interna mediante la marca --internal-ip:

    gcloud compute ssh VM_NAME \
        --internal-ip

    Reemplaza VM_NAME por el nombre de la VM a la que te quieres conectar.

Clientes OpenSSH

Para conectarte a una VM a través de un host de bastión desde un cliente de OpenSSH, haz lo siguiente:

  1. Agrega una clave SSH a la VM si aún no lo hiciste.
  2. 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.

    Ir a Instancias de VM

  3. Abre una terminal en tu estación de trabajo.
  4. 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: la ruta al archivo de clave SSH privada que corresponde a la clave pública que agregaste a la VM.
    • 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. Por ejemplo, cloudysanfrancisco_example_com, cloudysanfrancisco o.
    • EXTERNAL_IP: la dirección IP externa de la VM.
  5. Desde la VM del host de bastión, conéctate a la dirección IP interna de una VM mediante 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. Por ejemplo, cloudysanfrancisco_example_com, cloudysanfrancisco o.
    • 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 mediante PuTTY, haz lo siguiente:

  1. Agrega una clave SSH a la VM del host de bastión, si aún no lo hiciste.
  2. Si tu estación de trabajo no tiene instalada la app de PuTTY, descarga los archivos de paquete de PuTTY.
  3. En la consola de Google Cloud, ve a la página Instancias de VM y busca la dirección IP interna de la VM a la que te quieres conectar.

    Ir a Instancias de VM

  4. Abre la app de PuTTY. Se abrirá una ventana de configuración de conexión.
  5. En el campo Host Name, ingresa el nombre de usuario asociado con la clave SSH y la dirección IP externa de la VM a la que te quieres conectar. 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. Por ejemplo, cloudysanfrancisco_example_com, cloudysanfrancisco o.
    • EXTERNAL_IP: la dirección IP externa de la VM.
  6. En el menú Categoría, navega hasta Conexión > SSH > Auth.
  7. En el campo Archivo de claves privadas para la autenticación, selecciona el archivo de clave SSH privada que corresponde a la clave pública que agregaste a la VM.
  8. En la sección Parámetros de autenticación, selecciona Permitir el reenvío de agentes.
  9. Haz clic en Abrir para conectarte a la VM del host de bastión.
  10. Desde la VM del host de bastión, conéctate a la dirección IP interna de una VM mediante 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. Por ejemplo, cloudysanfrancisco_example_com, cloudysanfrancisco o.
    • 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.

¿Qué sigue?