Conectarse a máquinas virtuales Linux mediante Identity-Aware Proxy


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 mediante el reenvío de TCP de Identity-Aware Proxy (IAP).

El reenvío de TCP de IAP te permite establecer un túnel cifrado a través del cual puedes reenviar conexiones SSH a máquinas virtuales. Cuando te conectas a una VM que usa IAP, IAP envuelve la conexión SSH en HTTPS antes de reenviarla a la VM. A continuación, IAP comprueba si tienes los permisos de gestión de identidades y accesos necesarios y, si es así, te concede acceso a la VM.

Si necesitas conectarte a una VM que no tiene direcciones IP externas y no puedes usar IAP, consulta los otros métodos que se indican en Opciones de conexión para VMs solo internas.

Antes de empezar

  • Crea una regla de cortafuegos para habilitar las conexiones de IAP.
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

Sistemas operativos compatibles

Estos métodos de conexión se admiten en todas las imágenes públicas de Linux que están disponibles en Compute Engine. En el caso de las imágenes de Fedora CoreOS, debes configurar el acceso SSH antes de poder usar estos métodos.

Conectarse a máquinas virtuales

Para conectarte a una VM, sigue los pasos de una de las pestañas siguientes.

Consola

Para crear un túnel de conexiones SSH a través de la dirección IP interna de una VM mediante SSH en el navegador, haz lo siguiente:

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

gcloud

Crea un túnel para las conexiones SSH a través de la dirección IP interna de una máquina virtual con el comando gcloud compute ssh y la marca --tunnel-through-iap:

    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.

  1. Conéctate a la VM ejecutando el siguiente comando:

    gcloud compute ssh VM-NAME \
        --tunnel-through-iap
  2. Sustituye VM_NAME por el nombre de la VM a la que quieras conectarte.

    IAP Desktop

    Para conectarte a una VM mediante IAP Desktop, haz lo siguiente:

    1. Instala IAP Desktop en tu estación de trabajo si aún no lo has hecho.

    2. Abre IAP Desktop. Se abrirá la ventana Añadir proyectos.

    3. Cuando se te solicite, inicia sesión con la cuenta de Google que tenga acceso al proyecto con las máquinas virtuales a las que quieras conectarte.

    4. En la ventana Añadir proyectos, introduce el ID o el nombre del proyecto que contiene las VMs a las que quieres conectarte.

    5. En la ventana Explorador de proyectos, vuelve a hacer clic con el botón derecho en el nombre de la VM y selecciona Conectar para conectarte a la VM.

    Aplicación PuTTY

    Para tunelizar conexiones SSH a través de la dirección IP interna de una VM con PuTTY, haz lo siguiente:

    1. Añade una clave SSH a la VM si aún no lo has hecho.
    2. Si tu estación de trabajo aún no tiene instalada la aplicación PuTTY, descarga los archivos del paquete PuTTY.
    3. En la consola de Google Cloud , ve a la página Instancias de VM y busca el nombre de la VM a la que quieras conectarte.

      Ir a Instancias de VM

    4. Abre la aplicación PuTTY. Se abrirá una ventana de configuración de conexión.
    5. En el campo Host Name, introduce el nombre de usuario asociado a la clave SSH y el nombre de la VM a la que quieras conectarte. Utiliza el siguiente formato:

      USERNAME@VM_NAME

      Haz los cambios siguientes:

      • USERNAME: tu nombre de usuario. Si gestionas tus claves SSH en los metadatos, el nombre de usuario es el que especificaste cuando creaste la clave SSH. En el caso de las cuentas de inicio de sesión en el SO, el nombre de usuario se define en tu perfil de Google. Por ejemplo, cloudysanfrancisco_example_com o cloudysanfrancisco.
      • NAME: el nombre de la VM.
    6. En el menú Categoría, vaya a Conexión > SSH > Autenticación.
    7. En el campo Archivo de clave privada para la autenticación, selecciona el archivo de clave SSH privada que corresponda a la clave pública que has añadido a la VM.
    8. En el menú Categoría, vaya a Conexión > Proxy.
    9. En la sección Tipo de proxy, selecciona Local.
    10. En el campo Comando Telnet o comando de proxy local, introduce el siguiente comando:

      gcloud.cmd compute start-iap-tunnel VM_NAME PORT_NUMBER --listen-on-stdin --project=PROJECT_ID --zone=ZONE

      Haz los cambios siguientes:

      • VM_NAME: el nombre de la VM a la que quieres conectarte.
      • PORT_NUMBER: el puerto en el que se ejecuta el daemon sshd. El valor predeterminado PORT_NUMBER es 22.
      • PROJECT_ID: el proyecto que aloja la VM a la que quieres conectarte.
      • ZONE: la zona en la que se encuentra la VM.
    11. Haz clic en Abrir para conectarte a la VM.

Solución de problemas

Para consultar métodos para diagnosticar y resolver conexiones SSH fallidas, consulta Solución de problemas de SSH.

Siguientes pasos