Conectar-se a VMs Linux usando um host bastião


Este documento descreve como se conectar a uma instância de máquina virtual (VM) por meio de seu endereço IP interno, usando uma VM bastion host . Os hosts Bastion fornecem um ponto de entrada externo em uma rede Virtual Private Cloud (VPC) que contém VMs que não possuem endereços IP externos. Ao usar um host bastião, conecte-se primeiro ao host bastião e, em seguida, conecte-se à VM de destino.

Conectar-se a uma VM usando seu endereço IP interno será útil se a VM não tiver um endereço IP externo. Se a VM tiver um endereço IP externo, conecte-se à VM usando seu 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 host bastião, revise os outros métodos listados em Opções de conexão para VMs somente internas .

Sistemas operacionais suportados

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, você deve configurar o acesso SSH antes de poder usar esses métodos.

Crie uma VM host bastião

Crie uma VM do Compute Engine na rede interna do cluster privado para atuar como um host bastião que pode gerenciar o cluster.

Console

Crie uma VM bastion host fazendo o seguinte:

  1. No console do Google Cloud, acesse a página Criar uma instância .

    Vá para Criar uma instância

    1. Especifique os seguintes detalhes da VM:
    • Nome : o nome da sua VM.
    • Tipo de máquina : um tipo de máquina. Escolha um tipo de máquina pequena, como e2-micro .
    • Disco de inicialização Sistema operacional : qualquer sistema operacional Linux.
  2. Expanda a seção Opções avançadas e faça o seguinte:

    1. Na seção Interfaces de rede , selecione a mesma rede VPC e sub-rede da VM de destino.

    2. Para Endereço IPv4 externo , selecione Temporário .

  3. Para criar e iniciar a VM, clique em Criar .

gcloud

Crie uma VM bastion host usando o comando gcloud compute instances create :

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. Crie a VM bastion host executando o seguinte 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 o seguinte:

    • VM_NAME : o nome da VM.
    • ZONE : a zona para VM.
    • IMAGE_FAMILY : uma família de imagens do Linux.
    • IMAGE_PROJECT : o projeto de imagem que contém a imagem.
    • SUBNET : a mesma sub-rede VPC que a VM de destino. Se você usar a VPC padrão, a SUBNET será default .

Conectar-se a VMs

Para se conectar a uma VM, conclua as etapas em uma das guias a seguir.

gcloud

Conecte-se a uma VM usando SSH por meio de um host bastião executando o comando gcloud compute ssh :

  1. Conecte-se à VM do host bastião executando o seguinte comando:

    gcloud compute ssh BASTION_NAME

    Substitua BASTION_NAME pelo nome da VM do host bastião.

  2. Na VM bastion host, conecte-se à VM principal por meio de seu endereço IP interno usando o sinalizador --internal-ip :

    gcloud compute ssh VM_NAME \
        --internal-ip

    Substitua VM_NAME pelo nome da VM à qual você deseja se conectar.

Clientes OpenSSH

Conecte-se a uma VM por meio de um host bastião de um cliente OpenSSH, fazendo o seguinte:

  1. Adicione uma chave SSH à VM, caso ainda não o tenha feito.
  2. 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.

    Vá para instâncias de VM

  3. Abra um terminal em sua estação de trabalho.
  4. Conecte-se à VM do host bastião executando o seguinte comando:

    ssh -A -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

    Substitua o seguinte:

    • PATH_TO_PRIVATE_KEY : o caminho para o arquivo de chave SSH privada que corresponde à chave pública que você adicionou à VM.
    • USERNAME : seu nome de usuário. Se você gerencia suas chaves SSH em metadados, o nome de usuário é o que você especificou quando criou a chave SSH . Para contas de login do sistema operacional, o nome de usuário é definido no seu perfil do Google . Por exemplo, cloudysanfrancisco_example_com ou cloudysanfrancisco .
    • EXTERNAL_IP : o endereço IP externo da VM.
  5. Na VM bastion host, conecte-se por meio do endereço IP interno de uma VM usando o seguinte comando:

    ssh USERNAME@INTERNAL_IP

    Substitua o seguinte:

    • USERNAME : seu nome de usuário. Se você gerencia suas chaves SSH em metadados, o nome de usuário é o que você especificou quando criou a chave SSH . Para contas de login do sistema operacional, o nome de usuário é definido no seu perfil do Google . Por exemplo, cloudysanfrancisco_example_com ou cloudysanfrancisco .
    • INTERNAL_IP : o endereço IP interno da VM.

Aplicativo PuTTY

Conecte-se a uma VM por meio de um host bastião usando PuTTY, fazendo o seguinte:

  1. Adicione uma chave SSH à VM do host bastião, caso ainda não o tenha feito.
  2. Se sua estação de trabalho ainda não tiver o aplicativo PuTTY instalado, baixe os arquivos do pacote PuTTY .
  3. No console do Google Cloud, acesse a página Instâncias de VM e encontre o endereço IP interno da VM à qual você deseja se conectar.

    Vá para instâncias de VM

  4. Abra o aplicativo PuTTY. Uma janela de configuração de conexão é aberta.
  5. No campo Host Name , insira o nome de usuário associado à chave SSH e o endereço IP externo da VM à qual você deseja se conectar. Use o seguinte formato:

    USERNAME@EXTERNAL_IP

    Substitua o seguinte:

    • USERNAME : seu nome de usuário. Se você gerencia suas chaves SSH em metadados, o nome de usuário é o que você especificou quando criou a chave SSH . Para contas de login do sistema operacional, o nome de usuário é definido no seu perfil do Google . Por exemplo, cloudysanfrancisco_example_com ou cloudysanfrancisco .
    • EXTERNAL_IP : o endereço IP externo da VM.
  6. No menu Categoria , navegue até Connection > SSH > Auth .
  7. No campo Arquivo de chave privada para autenticação , selecione o arquivo de chave SSH privada que corresponde à chave pública que você adicionou à VM.
  8. Na seção Parâmetros de autenticação , selecione Permitir encaminhamento de agente .
  9. Clique em Abrir para se conectar à VM do host bastião.
  10. Na VM bastion host, conecte-se por meio do endereço IP interno de uma VM usando o seguinte comando:

    ssh USERNAME@INTERNAL_IP

    Substitua o seguinte:

    • USERNAME : seu nome de usuário. Se você gerencia suas chaves SSH em metadados, o nome de usuário é o que você especificou quando criou a chave SSH . Para contas de login do sistema operacional, o nome de usuário é definido no seu perfil do Google . Por exemplo, cloudysanfrancisco_example_com ou cloudysanfrancisco .
    • INTERNAL_IP : o endereço IP interno da VM.

Solução de problemas

Para encontrar métodos para diagnosticar e resolver conexões SSH com falha, consulte Solução de problemas de SSH .

O que vem a seguir