Suporte de SSH

Esta página descreve como usar a CLI gcloud para estabelecer ligação à sua estação de trabalho a partir de uma máquina local através do SSH (ou de qualquer outro protocolo TCP).

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

Assim que o túnel TCP for estabelecido entre a porta local e a estação de trabalho, pode usá-lo para encaminhar tráfego de um cliente SSH, curl ou qualquer outra aplicação que use TCP.

Para sua 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 da CLI gcloud.

Para todos os outros exemplos de utilização, use o comando gcloud workstations start-tcp-tunnel para estabelecer o túnel TCP e execute a aplicação que vai usar o túnel (por exemplo, curl) num terminal separado.

Antes de começar

  1. Se ainda não tiver uma estação de trabalho à qual se ligar, configure uma estação de trabalho.

  2. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

    gcloud init

    Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI com a sua identidade federada.gcloud

  3. Certifique-se de que tem a função do IAM Utilizador do Cloud Workstations na estação de trabalho à qual se vai ligar.

    Aceda ao IAM

  4. Ligue-se à sua estação de trabalho através de SSH

    Para estabelecer uma ligação SSH segura à sua 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 para a área de transferência, clique em Copiar exemplo de código e, em seguida, cole o comando numa 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 do projeto que contém a estação de trabalho. Se for omitido, é usado o projeto atual.

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

    • CLUSTER_NAME: o nome do cluster de estações 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 estas estações de trabalho.

    • WORKSTATION_PORT (Opcional): a porta na estação de trabalho para a qual o tráfego deve ser enviado. Se for omitido, o tráfego é enviado para a porta 22. Todas as imagens de estações de trabalho na nuvem pré-configuradas incluem um servidor SSH que é executado na porta 22 da estação de trabalho.

    • LOCAL_PORT (Opcional): a porta de anfitrião local a partir da qual o tráfego vai ser enviado. Os números de porta válidos são de 1024 a 65535. Se omitir a flag --local-host-port ou especificar uma porta de 0, é selecionada automaticamente uma porta não usada.

    • 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 duplo traço (--).

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

    Para estabelecer ligação a uma estação de trabalho através de uma aplicação TCP que não seja o ssh, use o comando gcloud workstations start-tcp-tunnel:

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

      Para copiar o comando para a área de transferência, clique em Copiar exemplo de código e, em seguida, cole o comando numa 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 do projeto que contém a estação de trabalho. Se for omitido, é usado o projeto atual.

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

      • CLUSTER_NAME: o nome do cluster de estações 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 estas estações de trabalho.

      • LOCAL_PORT (Opcional): a porta de anfitrião local a partir da qual o tráfego vai ser enviado. Os números de porta válidos são de 1024 a 65535. Se omitir a flag --local-host-port ou especificar uma porta de 0, é selecionada automaticamente uma porta não usada.

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

      • WORKSTATION_PORT: a porta da estação de trabalho para a qual o tráfego deve ser enviado. As imagens de estações de trabalho na nuvem pré-configuradas incluem um servidor SSH que é executado na porta 22 da estação de trabalho.

    2. O comando da CLI gcloudexecuta um teste de conetividade com a estação de trabalho, abre um túnel e, em seguida, apresenta 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 só está acessível a aplicações em execução no seu computador local.

    3. Deixe a CLI do gcloud em execução e abra outro terminal para executar a aplicação que se liga à sua estação de trabalho.

      Por exemplo, se estiver a executar um servidor na sua estação de trabalho que publica a porta WORKSTATION_PORT e, no passo anterior, tiver criado um túnel TCP que encaminha o tráfego entre a sua porta local LOCAL_PORT e a porta da estação de trabalho WORKSTATION_PORT, pode executar curl na sua máquina local para se ligar ao servidor na sua estação de trabalho:

      curl localhost:LOCAL_PORT
      Hello, world!
      
    4. Quando terminar, regresse ao terminal onde iniciou o túnel TCP e interrompa a CLI gcloud premindo Control+C.

    Use servidores SSH em portas diferentes

    As imagens de contentores personalizadas também podem usar servidores SSH em qualquer porta. Para suportar ligações a partir do túnel da CLI gcloud, tem de configurar servidores SSH personalizados para permitir a autenticação por palavra-passe e definir o utilizador de destino com uma palavra-passe vazia. O Cloud Workstations usa o Cloud IAM para ajudar a garantir que apenas o tráfego autorizado é enviado para o servidor SSH.

    O que se segue?