Compatibilidad con SSH

En esta página se describe cómo usar la CLI gcloud para conectarte a tu estación de trabajo desde una máquina local mediante SSH (o cualquier otro protocolo TCP).

Cloud Workstations usa un túnel para reenviar el tráfico TCP entre un puerto de tu máquina local y un puerto de tu estación de trabajo sin exponer abiertamente tu estación de trabajo a Internet. Las conexiones se autentican mediante las credenciales de la CLI de gcloud y se autorizan de acuerdo con las políticas de gestión de identidades y accesos de la estación de trabajo de destino.

Una vez que se haya establecido el túnel TCP entre tu puerto local y la estación de trabajo, podrás usarlo para reenviar tráfico desde un cliente SSH, curl o cualquier otra aplicación que use TCP.

Para mayor comodidad, Cloud Workstations proporciona el comando gcloud workstations ssh, que establece el túnel TCP y ejecuta un cliente SSH con un solo comando de CLI gcloud.

Para el resto de los casos prácticos, usa el comando gcloud workstations start-tcp-tunnel para establecer el túnel TCP y ejecuta la aplicación que usará el túnel (por ejemplo, curl) en otra terminal.

Antes de empezar

  1. Si aún no tienes una estación de trabajo a la que conectarte, configura una.

  2. 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.

  3. Asegúrate de tener el rol de IAM Usuario de Cloud Workstations en la estación de trabajo a la que te vas a conectar.

    Ir a IAM

  4. Conectarse a una estación de trabajo mediante SSH

    Para establecer una conexión SSH segura con tu estación de trabajo, usa el comando gcloud workstations ssh, que inicia un túnel TCP y ejecuta un cliente SSH.

    Para copiar el comando en el búfer de copiar y pegar, haz clic en Copiar código de ejemplo y, a continuación, pega el comando en una ventana de terminal local:

    gcloud workstations ssh \
        --project=PROJECT_ID \
        --region=REGION \
        --cluster=CLUSTER_NAME \
        --config=CONFIG_NAME  \
        --port=WORKSTATION_PORT  \
        --local-host-port=localhost:LOCAL_PORT  \
        WORKSTATION_NAME
    

    Sustituye los siguientes valores:

    • PROJECT_ID: el ID del proyecto que contiene la estación de trabajo. Google Cloud Si se omite, se usará el proyecto actual.

    • REGION: la región en la que se encuentra el clúster de la estación de trabajo (por ejemplo, us-central1).

    • CLUSTER_NAME: el nombre del clúster de estaciones de trabajo que contiene la estación de trabajo.

    • CONFIG_NAME: el nombre de la configuración de la estación de trabajo que contiene estas estaciones.

    • WORKSTATION_PORT (Opcional): el puerto de la estación de trabajo al que se debe enviar el tráfico. Si se omite, el tráfico se enviará al puerto 22. Todas las imágenes preconfiguradas de Cloud Workstations incluyen un servidor SSH que se ejecuta en el puerto 22 de la estación de trabajo.

    • LOCAL_PORT (opcional): el puerto localhost desde el que se enviará el tráfico. Los números de puerto válidos van de 1024 a 65535. Si omites la marca --local-host-port o especificas el puerto 0, se seleccionará automáticamente un puerto que no se esté usando.

    • WORKSTATION_NAME: el nombre de la estación de trabajo.

    Opcional: Para transferir marcas y posicionales a la implementación de ssh subyacente, añádelos al comando después de un doble guion (--).

    Usar un túnel TCP para reenviar tráfico TCP arbitrario a tu estación de trabajo

    Para conectarte a una estación de trabajo mediante una aplicación TCP que no sea ssh, usa el comando gcloud workstations start-tcp-tunnel:

    1. Ejecuta el siguiente comando de la CLI gcloud para crear un túnel TCP autenticado.

      Para copiar el comando en el búfer de copiar y pegar, haz clic en Copiar código de ejemplo y, a continuación, pega el comando en una ventana de terminal local:

      gcloud workstations start-tcp-tunnel \
          --project=PROJECT_ID \
          --region=REGION \
          --cluster=CLUSTER_NAME \
          --config=CONFIG_NAME \
          --local-host-port=localhost:LOCAL_PORT \
          WORKSTATION_NAME \
          WORKSTATION_PORT
      

      Sustituye los siguientes valores:

      • PROJECT_ID: el ID del proyecto que contiene la estación de trabajo. Google Cloud Si se omite, se usará el proyecto actual.

      • REGION: la región en la que se encuentra el clúster de la estación de trabajo (por ejemplo, us-central1).

      • CLUSTER_NAME: el nombre del clúster de estaciones de trabajo que contiene la estación de trabajo.

      • CONFIG_NAME: el nombre de la configuración de la estación de trabajo que contiene esta estación de trabajo.

      • LOCAL_PORT (opcional): el puerto localhost desde el que se enviará el tráfico. Los números de puerto válidos van de 1024 a 65535. Si omite la marca --local-host-port o especifica un puerto de 0, se seleccionará automáticamente un puerto que no se esté usando.

      • WORKSTATION_NAME: el nombre de la estación de trabajo.

      • WORKSTATION_PORT: el puerto de la estación de trabajo al que se debe enviar el tráfico. Las imágenes de estaciones de trabajo de Cloud preconfiguradas incluyen un servidor SSH que se ejecuta en el puerto 22 de la estación de trabajo.

    2. El comando gcloud de la CLI realiza una prueba de conectividad con la estación de trabajo, abre un túnel y, a continuación, muestra un número de puerto:

      Listening on port [LOCAL_PORT].
      

      Todo el tráfico enviado a localhost:LOCAL_PORT se reenvía a la estación de trabajo. Solo pueden acceder al puerto las aplicaciones que se ejecuten en tu ordenador local.

    3. Deja la CLI de gcloud en ejecución y abre otra terminal para ejecutar la aplicación que se conecta a tu estación de trabajo.

      Por ejemplo, si estás ejecutando un servidor en tu estación de trabajo que sirve el puerto WORKSTATION_PORT y, en el paso anterior, has creado un túnel TCP que reenvía el tráfico entre tu puerto local LOCAL_PORT y el puerto WORKSTATION_PORT de la estación de trabajo, puedes ejecutar curl en tu máquina local para conectarte al servidor de tu estación de trabajo:

      curl localhost:LOCAL_PORT
      Hello, world!
      
    4. Cuando hayas terminado, vuelve a la terminal en la que iniciaste el túnel TCP e interrumpe la CLI de gcloud pulsando Control+C.

    Usar servidores SSH en puertos diferentes

    Las imágenes de contenedor personalizadas también pueden usar servidores SSH en cualquier puerto. Para admitir conexiones desde el túnel de la CLI de gcloud, debes configurar servidores SSH personalizados para permitir la autenticación con contraseña y definir el usuario de destino con una contraseña vacía. Cloud Workstations usa Cloud IAM para asegurarse de que solo se envíe tráfico autorizado al servidor SSH.

    Siguientes pasos