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 con SSH (o cualquier otro protocolo TCP).
Cloud Workstations usan 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 exponerla
abiertamente a Internet. Las conexiones se autentican con credenciales de la CLI de gcloud
y se autorizan según las políticas de IAM de la estación de trabajo de destino.
Una vez que se establezca 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 la CLI de gcloud
.
Para 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 independiente.
Antes de comenzar
Si aún no tienes una estación de trabajo a la que conectarte, configura una.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Asegúrate de tener el rol de IAM de Usuario de estaciones de trabajo de Cloud en la estación de trabajo a la que te conectarás.
Cómo conectarte 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 la muestra de código y, luego, pégalo 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 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 estaciones 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.WORKSTATION_PORT
(opcional): Es 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 puerto22
. Todas las imágenes preconfiguradas de Cloud Workstations incluyen un servidor SSH que se ejecuta en el puerto22
de la estación de trabajo.LOCAL_PORT
(opcional): Es el puerto de localhost desde el que se enviará el tráfico. Los números de puerto válidos van desde1024
hasta65535
. Si omites la marca--local-host-port
o especificas un puerto de0
, se selecciona automáticamente un puerto que no esté en uso.WORKSTATION_NAME
: Es el nombre de la estación de trabajo.
Opcional: Para pasar marcas y posiciones a la implementación subyacente de ssh
, adjúntalos al comando después de dos guiones (--
).
Usa un túnel TCP para reenviar tráfico TCP arbitrario a tu estación de trabajo
Para conectarte a una estación de trabajo con una aplicación TCP que no sea ssh
, usa el comando gcloud workstations start-tcp-tunnel
:
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 la muestra de código y, luego, pégalo 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 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 estaciones 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 de localhost desde el que se enviará el tráfico. Los números de puerto válidos van desde1024
hasta65535
. Si omites la marca--local-host-port
o especificas un puerto de0
, se seleccionará automáticamente un puerto que no se use.WORKSTATION_NAME
: Es 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 preconfiguradas de Cloud Workstations incluyen un servidor SSH que se ejecuta en el puerto22
de la estación de trabajo.
El comando de la CLI de
gcloud
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 enviado 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.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 tu 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 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 en tu estación de trabajo:curl localhost:LOCAL_PORT Hello, world!
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 diferentes puertos
Las imágenes de contenedores 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 de contraseña y establecer 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?
- Cómo configurar variables de entorno del contenedor en sesiones de SSH para imágenes de contenedor personalizadas
- Habilita el reenvío de X11 para imágenes de contenedores personalizadas