Suporte a SSH

Nesta página, descrevemos como usar a CLI gcloud para se conectar à estação de trabalho 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 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 é estabelecido entre a porta local e a estação de trabalho, é possível usá-lo para encaminhar o tráfego de um cliente SSH, curl ou qualquer outro aplicativo que use TCP.

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

Para todos os outros casos de uso, use o gcloud workstations start-tcp-tunnel comando para estabelecer o túnel TCP e executar o aplicativo que vai 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. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

    gcloud init

    Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  3. Verifique se você tem o papel de usuário do Cloud Workstations IAM na estação de trabalho a que você vai 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 gcloud workstations ssh comando, que inicia um túnel TCP e executa um cliente SSH.

Para copiar o comando para o buffer de copiar e colar, clique em Copiar exemplo 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 Google Cloud ID do 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 contém a estação de trabalho.

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

  • WORKSTATION_PORT (opcional): a porta na estação de trabalho para a qual o tráfego precisa 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 22 da estação de trabalho.

  • LOCAL_PORT (opcional): a porta do host local de onde o tráfego será enviado. Os números de porta válidos são de 1024 a 65535. Se você omitir o flag --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.

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

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

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

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

    Para copiar o comando para o buffer de copiar e colar, clique em Copiar exemplo 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 Google Cloud ID do 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 contém a estação de trabalho.

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

    • LOCAL_PORT (opcional): a porta do host local de onde o tráfego será enviado. Os números de porta válidos são de 1024 a 65535. Se você omitir o flag --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 a qual o tráfego precisa ser enviado. As imagens pré-configuradas do Cloud Workstations incluem um servidor SSH que é executado na porta 22 da estação de trabalho.

  2. O comando da CLI gcloud executa um teste de conectividade com a estação de trabalho, abre um túnel e mostra 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 atende à porta WORKSTATION_PORT e, na etapa anterior, você criou 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, você poderá executar 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

As 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, é necessário configurar 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 Cloud IAM para garantir que apenas o tráfego autorizado seja enviado ao servidor SSH.

A seguir