Este documento descreve como conectar uma instância de máquina virtual (VM) através de seu endereço IP interno, usando uma VM de Bastion Host. Os Bastion Hosts fornecem um ponto de entrada externo para uma rede de nuvem privada virtual (VPC) que contém VMs sem endereços IP externos. Ao usar um Bastion Host, conecte-se primeiro ao Bastion Host e, em seguida, à VM de destino.
A conexão com uma VM usando o endereço IP interno dela é útil quando a VM não tem um endereço IP externo. Se a VM tiver um endereço IP externo, conecte-se à VM usando o endereço IP externo. Se você precisar se conectar a uma VM que não tenha endereços IP externos e não puder usar um Bastion Host, analise os outros métodos listados em Opções de conexão para VMs somente internas.
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.
Criar uma VM do Bastion Host
Crie uma VM do Compute Engine na rede interna do cluster particular para atuar como um Bastion Host capaz de gerenciar o cluster.
Crie uma VM do Bastion Host fazendo o seguinte:
No console do Google Cloud, acesse a página Criar uma instância.
- Especifique os seguintes detalhes da VM:
- Nome: o nome da VM.
- Tipo de máquina: um tipo de máquina. Escolha um tipo de máquina pequeno, como
e2-micro
. - Disco de inicialização Sistema operacional: qualquer SO Linux.
Expanda a seção Opções avançadas e faça o seguinte:
Na seção Interfaces de rede, selecione a mesma rede VPC e sub-rede que a VM de destino.
Em Endereço IPv4 externo, selecione Temporário.
Para criar e iniciar a VM, clique em Criar.
Crie uma VM do Bastion Host usando o
comando gcloud compute instances create
:
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Crie a VM do Bastion Host executando este comando:
gcloud compute instances create
VM_NAME \ --zone=ZONE \ --machine-type=e2-micro \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --network-interface=subnet=SUBNET,address="" Substitua:
VM_NAME
: o nome da VM.ZONE
: a zona da VM.IMAGE_FAMILY
: uma família de imagem do Linux.IMAGE_PROJECT
: o projeto de imagem contendo a imagem.SUBNET
: a mesma sub-rede VPC que a VM de destino. Se você usar a VPC padrão, oSUBNET
serádefault
.
Conectar-se às VMs
Para se conectar a uma VM, conclua as etapas em uma das guias a seguir.
Permissões exigidas para a tarefa
Para executar esta tarefa, é necessário ter permissões:
- Todas as permissões incluídas no
papel de usuário da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço e na sua conta de usuário. Para ver detalhes sobre como conceder esse papel em uma conta de serviço única, consulte Como permitir que uma conta principal represente uma única conta de serviço. - Se você usar o Login do SO, precisa de todas as permissões incluídas em um dos papéis do IAM de Login do SO na conta de serviço e na conta de usuário.
- Se você não usa o Login do SO, a permissão
compute.projects.setCommonInstanceMetadata
é necessária na conta de serviço e na conta de usuário.
Também é necessário
atribuir sua conta de serviço a uma VM e definir o escopo de acesso cloud-platform
na VM.
Conecte-se a uma VM usando SSH por meio de um Bastion Host ao executar o comando gcloud compute ssh
:
Conecte-se à VM do Bastion Host ao executar o seguinte comando:
gcloud compute ssh
BASTION_NAME Substitua
BASTION_NAME
pelo nome da VM do Bastion Host.Na VM do Bastion Host, conecte-se à VM principal pelo endereço IP interno usando o flag
--internal-ip
:gcloud compute ssh
VM_NAME \ --internal-ipSubstitua
VM_NAME
pelo nome da VM a que você quer se conectar.
Para se conectar a uma VM por meio de um Bastion Host por um cliente do OpenSSH, faça o seguinte:
- Adicione uma chave SSH à VM, caso ainda não tenha feito isso.
No console do Google Cloud, acesse a página Instâncias de VM e encontre o endereço IP externo da VM do Bastion Host.
- Abra um terminal na estação de trabalho.
Conecte-se à VM do Bastion Host ao executar o seguinte comando:
ssh -A -i
PATH_TO_PRIVATE_KEY USERNAME @EXTERNAL_IP Substitua:
PATH_TO_PRIVATE_KEY
: o caminho para o arquivo de chave SSH privada que corresponde à chave pública adicionada à VM.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_com
oucloudysanfrancisco
.-
EXTERNAL_IP
: o endereço IP externo da VM.
Na VM do Bastion Host, conecte-se pelo endereço IP interno de uma VM usando o seguinte comando:
ssh
USERNAME @INTERNAL_IP 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_com
oucloudysanfrancisco
.INTERNAL_IP
: o endereço IP interno da VM.
Para se conectar a uma VM por meio de um Bastion Host usando PuTTY faça o seguinte:
- Adicione uma chave SSH à VM de Bastion Host, caso ainda não tenha 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 endereço IP interno 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
, digite o nome de usuário associado à chave SSH e o endereço IP externo da VM a que você quer se conectar. Use o seguinte formato:USERNAME @EXTERNAL_IP 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_com
oucloudysanfrancisco
.-
EXTERNAL_IP
: o endereço IP externo 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 particular que corresponde à chave pública adicionada à VM.
- Na seção Parâmetros de autenticação, selecione Permitir encaminhamento de agente.
- Clique em Abrir para se conectar à VM do Bastion Host.
Na VM do Bastion Host, conecte-se pelo endereço IP interno de uma VM usando o seguinte comando:
ssh
USERNAME @INTERNAL_IP 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_com
oucloudysanfrancisco
.INTERNAL_IP
: o endereço IP interno da 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