Organízate con las colecciones
Guarda y clasifica el contenido según tus preferencias.
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
Si aún no tienes una estación de trabajo a la que conectarte, configura una.
Instala Google Cloud CLI.
Después de la instalación,
inicializa la CLI de Google Cloud ejecutando el siguiente comando:
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
content_copyCopiar código de ejemplo y, a continuación, pega el comando en una ventana de terminal local:
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
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
content_copyCopiar código de ejemplo y, a continuación, pega el comando en una ventana de terminal local:
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.
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.
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!
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.
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-21 (UTC)."],[],[],null,["# SSH support\n\nThis page describes how to use the `gcloud` CLI to connect to your\nworkstation from a local machine using SSH (or any other TCP protocol).\n\nCloud Workstations uses a tunnel to forward TCP traffic between a port on your\nlocal machine and a port on your workstation without openly exposing\nyour workstation to the internet. Connections are authenticated using\ncredentials from the `gcloud` CLI and authorized according to the\ntarget workstation's IAM policies.\n\nOnce the TCP tunnel is established between your local port and the workstation,\nyou can use it to forward traffic from an SSH client, curl, or any other\napplication that uses TCP.\n\nFor convenience, Cloud Workstations provides the\n[`gcloud workstations ssh`](/sdk/gcloud/reference/workstations/ssh)\ncommand, which establishes the TCP tunnel and runs an SSH client with a\nsingle `gcloud` CLI command.\n\nFor all other use cases, use the\n[`gcloud workstations start-tcp-tunnel`](/sdk/gcloud/reference/workstations/start-tcp-tunnel)\ncommand to establish the TCP tunnel and run the application that will use the\ntunnel (for example, `curl`) in a separate terminal.\n| **Note:** All preconfigured Cloud Workstations images include an SSH server that runs on workstation port `22`.\n\nBefore you begin\n----------------\n\n1. If you don't already have a workstation to connect to,\n [set up a workstation](/workstations/docs/quickstart-set-up-workstations-console).\n\n2.\n\n\n [Install](/sdk/docs/install) the Google Cloud CLI.\n\n After installation,\n [initialize](/sdk/docs/initializing) the Google Cloud CLI by running the following command:\n\n ```bash\n gcloud init\n ```\n\n\n If you're using an external identity provider (IdP), you must first\n [sign in to the `gcloud` CLI with your federated identity](/iam/docs/workforce-log-in-gcloud).\n\n \u003cbr /\u003e\n\n3. Make sure that you have the\n [Cloud Workstations User](/workstations/docs/access-control#workstations-user)\n IAM role on the workstation you will connect to.\n\n [Go to IAM](https://console.cloud.google.com/iam-admin/iam)\n\nConnect to your workstation using SSH\n-------------------------------------\n\nTo establish a secure SSH connection to your workstation, use the\n[`gcloud workstations ssh`](/sdk/gcloud/reference/workstations/ssh)\ncommand, which starts a TCP tunnel and runs an SSH client.\n\nTo copy the command to the copy-paste buffer, click\ncontent_copy\n**Copy code sample** and then paste the command into a local terminal window: \n\n gcloud workstations ssh \\\n --project=\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e \\\n --region=\u003cvar translate=\"no\"\u003eREGION\u003c/var\u003e \\\n --cluster=\u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e \\\n --config=\u003cvar translate=\"no\"\u003eCONFIG_NAME\u003c/var\u003e \\\n --port=\u003cvar translate=\"no\"\u003eWORKSTATION_PORT\u003c/var\u003e \\\n --local-host-port=localhost:\u003cvar translate=\"no\"\u003eLOCAL_PORT\u003c/var\u003e \\\n \u003cvar translate=\"no\"\u003eWORKSTATION_NAME\u003c/var\u003e\n\nReplace the following values:\n\n- \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the Google Cloud project ID for the\n project containing the workstation. If omitted, the current project is\n used.\n\n- \u003cvar translate=\"no\"\u003eREGION\u003c/var\u003e: the region where the workstation's cluster is\n located---for example, `us-central1`.\n\n- \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e: the name of the workstation cluster\n containing the workstation.\n\n- \u003cvar translate=\"no\"\u003eCONFIG_NAME\u003c/var\u003e: the name of the workstation configuration\n containing this workstations.\n\n- \u003cvar translate=\"no\"\u003eWORKSTATION_PORT\u003c/var\u003e (Optional): the port on the workstation\n to which traffic should be sent. If omitted, traffic will be sent to port\n `22`. All preconfigured Cloud Workstations images include an SSH server that runs\n on workstation port `22`.\n\n- \u003cvar translate=\"no\"\u003eLOCAL_PORT\u003c/var\u003e (Optional): the localhost port from which\n traffic will be sent. Valid port numbers are `1024` to `65535`. If you omit\n the `--local-host-port` flag or specify a port of `0` an unused port is\n selected automatically.\n\n- \u003cvar translate=\"no\"\u003eWORKSTATION_NAME\u003c/var\u003e: the name of the workstation.\n\nOptional: To pass flags and positionals to the underlying `ssh`\nimplementation, append them to the command after a double-dash (`--`).\n\nUse a TCP tunnel to forward arbitrary TCP traffic to your workstation\n---------------------------------------------------------------------\n\nTo connect to a workstation using a TCP application other than `ssh`, use the\n[`gcloud workstations start-tcp-tunnel`](https://cloud.google.com/sdk/gcloud/reference/workstations/start-tcp-tunnel)\ncommand:\n\n1. Run the following `gcloud` CLI command to create an authenticated\n TCP tunnel.\n\n To copy the command to the copy-paste buffer, click\n content_copy\n **Copy code sample** and then paste the command into a local terminal window: \n\n gcloud workstations start-tcp-tunnel \\\n --project=\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e \\\n --region=\u003cvar translate=\"no\"\u003eREGION\u003c/var\u003e \\\n --cluster=\u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e \\\n --config=\u003cvar translate=\"no\"\u003eCONFIG_NAME\u003c/var\u003e \\\n --local-host-port=localhost:\u003cvar translate=\"no\"\u003eLOCAL_PORT\u003c/var\u003e \\\n \u003cvar translate=\"no\"\u003eWORKSTATION_NAME\u003c/var\u003e \\\n \u003cvar translate=\"no\"\u003eWORKSTATION_PORT\u003c/var\u003e\n\n Replace the following values:\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the Google Cloud project ID for the\n project containing the workstation. If omitted, the current project is\n used.\n\n - \u003cvar translate=\"no\"\u003eREGION\u003c/var\u003e: the region where the workstation's cluster is\n located---for example, `us-central1`.\n\n - \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e: the name of the workstation cluster\n containing the workstation.\n\n - \u003cvar translate=\"no\"\u003eCONFIG_NAME\u003c/var\u003e: the name of the workstation\n configuration containing this workstations.\n\n - \u003cvar translate=\"no\"\u003eLOCAL_PORT\u003c/var\u003e (Optional): the localhost port from which\n traffic will be sent. Valid port numbers are `1024` to `65535`. If you\n omit the `--local-host-port` flag or specify a port of `0` an unused\n port is selected automatically.\n\n - \u003cvar translate=\"no\"\u003eWORKSTATION_NAME\u003c/var\u003e: the name of the workstation.\n\n - \u003cvar translate=\"no\"\u003eWORKSTATION_PORT\u003c/var\u003e: the workstation port to which\n traffic should be sent.\n [Preconfigured Cloud Workstations images](/workstations/docs/preconfigured-base-images)\n include an SSH server that runs on workstation port `22`.\n\n2. The `gcloud` CLI command performs a connectivity test with the\n workstation, opens a tunnel, and then displays a port number:\n\n Listening on port [\u003cvar translate=\"no\"\u003eLOCAL_PORT\u003c/var\u003e].\n\n All traffic sent to `localhost:`\u003cvar translate=\"no\"\u003eLOCAL_PORT\u003c/var\u003e is forwarded to\n the workstation. The port is only accessible by applications running on your\n local computer.\n3. Leave the `gcloud` CLI running and open another terminal to run the\n application that connects to your workstation.\n\n For example, if you are running a server on your workstation that serves\n port \u003cvar translate=\"no\"\u003eWORKSTATION_PORT\u003c/var\u003e, and in the previous step you\n created a TCP tunnel that forwards traffic between your local port\n \u003cvar translate=\"no\"\u003eLOCAL_PORT\u003c/var\u003e and the workstation port\n \u003cvar translate=\"no\"\u003eWORKSTATION_PORT\u003c/var\u003e, you could run `curl` on your local\n machine to connect to the server on your workstation: \n\n curl localhost:\u003cvar translate=\"no\"\u003eLOCAL_PORT\u003c/var\u003e\n Hello, world!\n\n4. When you are finished, return to the terminal where you started the TCP\n tunnel and interrupt the `gcloud` CLI by pressing\n \u003ckbd\u003eControl+C\u003c/kbd\u003e.\n\nUse SSH servers on different ports\n----------------------------------\n\n[Custom container images](/workstations/docs/custom-container-images)\ncan also use SSH servers on any port. To support connections from the\n`gcloud` CLI tunnel, you must configure custom SSH servers to allow\npassword authentication and set the target user with an empty password.\nCloud Workstations uses\n[Cloud IAM](/iam/docs/overview)\nto help ensure that only authorized traffic is sent to the SSH server.\n\nWhat's next\n-----------\n\n- [Set container environment variables in SSH sessions](/workstations/docs/customize-container-images#container_image_that_sets_container_environment_variables_in_ssh_sessions) for custom container images\n- [Enable X11 forwarding](/workstations/docs/customize-container-images#container_image_that_enables_x11_forwarding_for_ssh_sessions) for custom container images"]]