Compatibilidad con SSH

En esta página, se describe cómo usar la CLI de 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 de TCP entre un puerto en tu máquina local y un puerto en tu estación de trabajo sin exponer abiertamente tu estación de trabajo a Internet. Las conexiones se autentican con las credenciales de la CLI de gcloud y se autorizan de acuerdo con las políticas de IAM de la estación de trabajo de destino.

Una vez que se establece el túnel TCP entre el puerto local y la estación de trabajo, puedes usarlo para reenviar el 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 gcloud de la CLI.

En todos los demás casos de uso, usa el comando gcloud workstations start-tcp-tunnel para establecer el túnel TCP y ejecutar la aplicación que usará el túnel (por ejemplo, curl) en una terminal separada.

Antes de comenzar

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

  2. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

    gcloud init

  3. Asegúrate de tener la función de IAM de Usuario de Cloud Workstations en la estación de trabajo a la que te conectarás.

    Ir a IAM

Conéctate a tu estación de trabajo con SSH

Para establecer una conexión SSH segura a 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 muestra de código y, luego, 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

Reemplaza los siguientes valores:

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

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

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

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

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

  • LOCAL_PORT (opcional): Es 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 un puerto de 0, se seleccionará automáticamente un puerto sin usar.

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

Opcional: Para pasar marcas y posicionales a la implementación subyacente de ssh, agrégalos al comando después de un guion doble (--).

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

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

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

    Para copiar el comando en el búfer de copiar y pegar, haz clic en Copiar muestra de código y, luego, 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
    

    Reemplaza los siguientes valores:

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

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

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

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

    • LOCAL_PORT (opcional): Es 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 un puerto de 0, se seleccionará automáticamente un puerto sin usar.

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

    • WORKSTATION_PORT: Es el puerto de la estación de trabajo al que se debe enviar el tráfico. Las imágenes de Cloud Workstations 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, luego, muestra un número de puerto:

    Listening on port [LOCAL_PORT].
    

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

  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 ejecutas un servidor en la estación de trabajo que entrega el puerto WORKSTATION_PORT y, en el paso anterior, creaste un túnel TCP que reenvía el tráfico entre el puerto local LOCAL_PORT y el puerto de la estación de trabajo WORKSTATION_PORT, puedes ejecutar curl en la máquina local para conectarte al servidor en la estación de trabajo:

    curl localhost:LOCAL_PORT
    Hello, world!
    
  4. Cuando termines, regresa a la terminal en la que iniciaste el túnel TCP y presiona Control+C para interrumpir la CLI de gcloud.

Usa servidores SSH en puertos diferentes

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

¿Qué sigue?