Neste documento, descrevemos como se conectar a uma instância de máquina virtual (VM) usando o endereço IP interno dela usando o encaminhamento de TCP do Identity-Aware Proxy (IAP).
O encaminhamento de TCP do IAP permite que você estabeleça um túnel criptografado para encaminhar conexões SSH para VMs. Quando você se conecta a uma VM que usa o IAP, o IAP encapsula a conexão SSH no HTTPS antes de encaminhar a conexão à VM. Em seguida, o IAP verifica se você tem as permissões necessárias do IAM e, se tiver, concede acesso à VM.
Se você precisar se conectar a uma VM que não tenha endereços IP externos e não puder usar o IAP, analise os outros métodos listados em Opções de conexão para VMs somente internas.
Antes de começar
- Crie uma regra de firewall para ativar as conexões do IAP.
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar
códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console Google Cloud para acessar os serviços e as APIs Google Cloud , não é necessário configurar a autenticação.
gcloud
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
- Defina uma região e uma zona padrão.
Sistemas operacionais compatíveis
Esses métodos de conexão são compatíveis com todas as imagens públicas do Linux disponíveis no Compute Engine. Para imagens do Fedora CoreOS, é necessário configurar o acesso SSH antes de usar esses métodos.
Conectar-se às VMs
Para se conectar a uma VM, conclua as etapas em uma das guias a seguir.
Console
Para encapsular conexões SSH pelo endereço IP interno de uma VM usando o SSH no navegador, faça o seguinte:
- No console do Google Cloud , acesse a página Instâncias de VM.
- Na lista de instâncias de máquina virtual, clique em SSH na linha da instância que você quer se conectar.
gcloud
Faça o encapsulamento de conexões SSH pelo endereço IP interno de uma VM usando o
comando gcloud compute ssh com a
sinalização --tunnel-through-iap:
Conecte-se à VM executando o seguinte comando:
gcloud compute ssh VM-NAME \ --tunnel-through-iap
No console do Google Cloud , ative o Cloud Shell.
Na parte inferior do console do Google Cloud , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Substitua VM_NAME pelo nome da VM a que você quer se conectar.
IAP Desktop
Para se conectar a uma VM usando o IAP Desktop, faça o seguinte:
-
Instale o IAP Desktop na sua estação de trabalho, se ainda não tiver feito isso.
-
Abra o IAP Desktop. A janela Adicionar projetos será aberta.
-
Quando solicitado, faça login usando a Conta do Google que tem acesso ao projeto com as VMs a que você quer se conectar.
-
Na janela Adicionar projetos, insira o ID ou o nome do projeto que contém as VMs a que você quer se conectar.
-
Na janela Project Explorer, clique com o botão direito do mouse no nome da VM novamente e selecione Conectar para se conectar à VM.
Clientes OpenSSH
Conecte-se a uma VM que não tem um endereço IP externo usando SSH por um túnel do IAP. Você pode escrever seu próprio arquivo de configuração SSH (~/.ssh/config) para que ferramentas como o VS Code ou o cliente OpenSSH possam se conectar sem problemas.
Gere e propague suas chaves SSH conectando-se à VM pelo menos uma vez executando o comando
gcloud compute ssh:gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME --tunnel-through-iap
Verifique se a conexão foi bem-sucedida e saia.
Abra ou crie o arquivo de configuração do SSH na estação de trabalho local. Esse arquivo geralmente fica em
~/.ssh/configno Linux e no macOS ou em%USERPROFILE%\.ssh\configno Windows.Adicione uma entrada de configuração para sua VM incluindo o seguinte bloco no arquivo de configuração SSH:
Host VM_NAME HostName VM_NAME IdentityFile PATH_TO_PRIVATE_KEY ProxyCommand gcloud compute start-iap-tunnel %h %p --listen-on-stdin --project=PROJECT_ID --zone=ZONE --verbosity=warning User USERNAMESubstitua:
VM_NAME: o nome da VM a que você quer se conectar.PATH_TO_PRIVATE_KEY: o caminho para o arquivo de chave privada, geralmente~/.ssh/google_compute_engine.PROJECT_ID: o ID do projeto que contém a VM.ZONE: a zona em que a VM está.USERNAME: o nome de usuário na VM (por exemplo, seu nome de usuário do Login do SO do Google Cloud ou o nome de usuário dos metadados).
Conecte-se à VM pelo terminal local ou cliente SSH executando o seguinte comando:
ssh VM_NAME
App PuTTY
Faça o encapsulamento de conexões SSH por meio do endereço IP interno de uma VM usando o PuTTY. Para isso, faça o seguinte:
- Adicione uma chave SSH à VM, se ainda não tiver feito isso.
- Se a estação de trabalho ainda não tiver o app PuTTY instalado, faça o download dos arquivos do pacote PuTTY.
No console do Google Cloud , acesse a página Instâncias de VM e encontre o nome da VM a que você quer se conectar.
- Abra o app PuTTY. Uma janela de configuração de conexão será aberta.
No campo
Host Name, insira o nome de usuário associado à chave SSH e o nome da VM à qual você quer se conectar. Use o seguinte formato:USERNAME@VM_NAME
Substitua:
USERNAME: seu nome de usuário. Se você gerencia suas chaves SSH em metadados, o nome de usuário será aquele que você especificou quando criou a chave SSH. Para contas do Login do SO, o nome de usuário é definido no seu perfil do Google. Por exemplo,cloudysanfrancisco_example_comoucloudysanfrancisco.-
NAME: o nome da VM.
- No menu Category, navegue até Connection > SSH > Auth.
- No campo Arquivo de chave privada para autenticação, selecione o arquivo da chave SSH privada que corresponde à chave pública adicionada à VM.
- No menu Categoria, navegue até Conexão > Proxy.
- Na seção Tipo de proxy, selecione Local.
No campo Comando Telnet ou comando proxy local, digite este comando:
gcloud.cmd compute start-iap-tunnel VM_NAME PORT_NUMBER --listen-on-stdin --project=PROJECT_ID --zone=ZONE
Substitua:
VM_NAME: o nome da VM a que você quer se conectar.PORT_NUMBER: a porta em que o daemon sshd é executado. O padrãoPORT_NUMBERé22.PROJECT_ID: o projeto que hospeda a VM a que você quer se conectar.ZONE: é a zona em que a VM está localizada
- Clique em Abrir para se conectar à VM.
Solução de problemas
Para encontrar métodos de diagnóstico e resolução de conexões SSH com falha, consulte Solução de problemas de SSH.
A seguir
- Saiba como gerenciar o acesso às VMs.
- Saiba como transferir arquivos para VMs.
- Saiba como as conexões SSH com VMs do Linux funcionam no Compute Engine