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. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

    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