Suporte a SSH

Nesta página, descrevemos como usar a CLI gcloud para se conectar à estação de trabalho a partir de uma máquina local usando SSH (ou qualquer outro protocolo TCP).

O Cloud Workstations usa um túnel para encaminhar o tráfego TCP entre uma porta na máquina local e uma porta na estação de trabalho sem expor abertamente a estação de trabalho à Internet. As conexões são autenticadas usando credenciais da CLI gcloud e autorizadas de acordo com as políticas do IAM da estação de trabalho de destino.

Depois que o túnel TCP for estabelecido entre a porta local e a estação de trabalho, será possível usá-lo para encaminhar tráfego de um cliente SSH, curl ou qualquer outro aplicativo que use TCP.

Por conveniência, o Cloud Workstations fornece o comando gcloud workstations ssh, que estabelece o túnel TCP e executa um cliente SSH com um único comando gcloud da CLI.

Para todos os outros casos de uso, use o comando gcloud workstations start-tcp-tunnel para estabelecer o túnel TCP e executar o aplicativo que usará o túnel (por exemplo, curl) em um terminal separado.

Antes de começar

  1. Se você ainda não tiver uma estação de trabalho para se conectar, configure uma.

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  3. Verifique se você tem o papel do IAM Usuário do Cloud Workstations na estação de trabalho a que você se conectará.

    Acessar o IAM

Conectar-se à estação de trabalho usando SSH

Para estabelecer uma conexão SSH segura com a estação de trabalho, use o comando gcloud workstations ssh, que inicia um túnel TCP e executa um cliente SSH.

Para copiar o comando no buffer de copiar e colar, clique em Copiar amostra de código e cole o comando em uma janela 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

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto do Google Cloud para o projeto que contém a estação de trabalho. Se omitido, o projeto atual será usado.

  • REGION: a região em que o cluster da estação de trabalho está localizado, por exemplo, us-central1.

  • CLUSTER_NAME: o nome do cluster da estação de trabalho que a contém.

  • CONFIG_NAME: o nome da configuração da estação de trabalho que a contém.

  • WORKSTATION_PORT (opcional): a porta na estação de trabalho para onde o tráfego será enviado. Se omitido, o tráfego será enviado para a porta 22. Todas as imagens pré-configuradas do Cloud Workstations incluem um servidor SSH que é executado na porta da estação de trabalho 22.

  • LOCAL_PORT (opcional): a porta localhost de onde o tráfego será enviado. Os números de porta válidos são de 1024 para 65535. Se você omitir a sinalização --local-host-port ou especificar uma porta 0, uma porta não utilizada será selecionada automaticamente.

  • WORKSTATION_NAME: o nome da estação de trabalho.

Opcional: para transmitir flags e posicionais para a implementação de ssh, anexe-os ao comando após um traço duplo (--).

Use um túnel TCP para encaminhar tráfego TCP arbitrário para sua estação de trabalho

Para se conectar a uma estação de trabalho usando um aplicativo TCP diferente de ssh, use o comando gcloud workstations start-tcp-tunnel:

  1. Execute o seguinte comando gcloud da CLI para criar um túnel TCP autenticado.

    Para copiar o comando no buffer de copiar e colar, clique em Copiar amostra de código e cole o comando em uma janela 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
    

    Substitua os seguintes valores:

    • PROJECT_ID: o ID do projeto do Google Cloud para o projeto que contém a estação de trabalho. Se omitido, o projeto atual será usado.

    • REGION: a região em que o cluster da estação de trabalho está localizado, por exemplo, us-central1.

    • CLUSTER_NAME: o nome do cluster da estação de trabalho que a contém.

    • CONFIG_NAME: o nome da configuração da estação de trabalho que contém as estações de trabalho.

    • LOCAL_PORT (opcional): a porta localhost de onde o tráfego será enviado. Os números de porta válidos são de 1024 para 65535. Se você omitir a sinalização --local-host-port ou especificar uma porta de 0, uma porta não utilizada será selecionada automaticamente.

    • WORKSTATION_NAME: o nome da estação de trabalho.

    • WORKSTATION_PORT: a porta da estação de trabalho para onde o tráfego será enviado. As imagens pré-configuradas do Cloud Workstations incluem um servidor SSH que é executado na porta da estação de trabalho 22.

  2. O comando gcloud da CLI executa um teste de conectividade com a estação de trabalho, abre um túnel e exibe um número de porta:

    Listening on port [LOCAL_PORT].
    

    Todo o tráfego enviado para localhost:LOCAL_PORT é encaminhado para a estação de trabalho. A porta é acessível apenas por aplicativos em execução no seu computador local.

  3. Deixe a CLI gcloud em execução e abra outro terminal para executar o aplicativo que se conecta à estação de trabalho.

    Por exemplo, se você estiver executando um servidor na estação de trabalho que exibe a porta WORKSTATION_PORT e, na etapa anterior, tiver criado um túnel TCP que encaminha o tráfego entre a porta local LOCAL_PORT e a porta da estação de trabalho WORKSTATION_PORT, execute curl na máquina local para se conectar ao servidor na estação de trabalho:

    curl localhost:LOCAL_PORT
    Hello, world!
    
  4. Quando terminar, retorne ao terminal em que você iniciou o túnel TCP e interrompa a CLI gcloud pressionando Control + C.

Usar servidores SSH em portas diferentes

Imagens de contêiner personalizadas também podem usar servidores SSH em qualquer porta. Para oferecer suporte a conexões do túnel da CLI gcloud, configure servidores SSH personalizados para permitir a autenticação por senha e definir o usuário de destino com uma senha vazia. O Cloud Workstations usa o Cloud IAM para garantir que apenas o tráfego autorizado seja enviado ao servidor SSH.

A seguir