Estabeleça ligação a VMs do Linux através de um anfitrião bastion

Este documento descreve como estabelecer ligação a uma instância de máquina virtual (VM) através do respetivo endereço IP interno, usando uma VM de anfitrião de bastião. Os hosts bastion fornecem um ponto de entrada externo numa rede da nuvem virtual privada (VPC) que contém VMs que não têm endereços IP externos. Quando usar um bastion host, ligue-se primeiro ao bastion host e, em seguida, ligue-se à VM de destino.

Estabelecer ligação a uma VM através do respetivo endereço IP interno é útil se a VM não tiver um endereço IP externo. Se a VM tiver um endereço IP externo, estabeleça ligação à VM através do respetivo endereço IP externo. Se precisar de estabelecer ligação a uma VM que não tenha endereços IP externos e não puder usar um anfitrião de bastião, reveja os outros métodos indicados em Opções de ligação para VMs apenas internas.

Sistemas operativos compatíveis

Estes métodos de ligação são suportados para todas as imagens Linux públicas disponíveis no Compute Engine. Para imagens do Fedora CoreOS, tem de configurar o acesso SSH antes de poder usar estes métodos.

Crie uma VM de anfitrião de bastion

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

Consola

Crie uma VM de bastion host fazendo o seguinte:

  1. Na Trusted Cloud consola, aceda à página Criar uma instância.

    Aceda a 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 pequeno, como e2-micro.
    • Disco de arranque Sistema operativo: qualquer SO Linux.
  2. Expanda a secção Opções avançadas e faça o seguinte:

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

    2. Para Endereço IPv4 externo, selecione Efémero.

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

gcloud

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

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

    Activate Cloud Shell

    At the bottom of the Trusted 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 do 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 da 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 da VPC que a VM de destino. Se usar a VPC predefinida, o valor de SUBNET é default.

Estabeleça ligação a VMs

Para estabelecer ligação a uma VM, conclua os passos num dos seguintes separadores.

gcloud

Ligue-se a uma VM através de SSH através de um anfitrião de bastião executando o comando gcloud compute ssh:

  1. Estabeleça ligação à VM do bastion host executando o seguinte comando:

    gcloud compute ssh BASTION_NAME

    Substitua BASTION_NAME pelo nome da VM do anfitrião bastion.

  2. A partir da VM do anfitrião de bastião, estabeleça ligação à VM principal através do respetivo endereço IP interno com a flag --internal-ip:

    gcloud compute ssh VM_NAME \
        --internal-ip

    Substitua VM_NAME pelo nome da VM à qual quer estabelecer ligação.

Clientes OpenSSH

Para estabelecer ligação a uma VM através de um anfitrião bastion a partir de um cliente OpenSSH, faça o seguinte:

  1. Adicione uma chave SSH à VM, se ainda não o tiver feito.
  2. Na Trusted Cloud consola, aceda à página VM Instances (Instâncias de VM) e encontre o endereço IP externo da VM do anfitrião bastion.

    Aceder a Instâncias de VM

  3. Abra um terminal na estação de trabalho.
  4. Crie uma associação à VM do bastion host 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 ficheiro de chave SSH privada que corresponde à chave pública que adicionou à VM.
    • USERNAME: o nome de utilizador é o que especificou quando criou a chave SSH.
    • EXTERNAL_IP: o endereço IP externo da VM.
  5. A partir da VM do bastion host, estabeleça ligação através do endereço IP interno de uma VM com o seguinte comando:

    ssh USERNAME@INTERNAL_IP

    Substitua o seguinte:

    • USERNAME: o nome de utilizador é o que especificou quando criou a chave SSH.
    • INTERNAL_IP: o endereço IP interno da VM.

App PuTTY

Estabeleça ligação a uma VM através de um bastion host com o PuTTY, fazendo o seguinte:

  1. Adicione uma chave SSH à VM do host bastion se ainda não o tiver feito.
  2. Se a sua estação de trabalho ainda não tiver a app PuTTY instalada, transfira os ficheiros do pacote PuTTY.
  3. Na Trusted Cloud consola, aceda à página Instâncias de VM e encontre o endereço IP interno da VM à qual quer estabelecer ligação.

    Aceder a Instâncias de VM

  4. Abra a app PuTTY. É aberta uma janela de configuração da ligação.
  5. No campo Host Name, introduza o nome de utilizador associado à chave SSH e o endereço IP externo da VM à qual quer estabelecer ligação. Use o seguinte formato:

    USERNAME@EXTERNAL_IP

    Substitua o seguinte:

    • USERNAME: o nome de utilizador é o que especificou quando criou a chave SSH.
    • EXTERNAL_IP: o endereço IP externo da VM.
  6. No menu Category (Categoria), navegue para Connection > SSH > Auth (Ligação > SSH > Autenticação).
  7. No campo Private key file for authentication (Ficheiro de chave privada para autenticação), selecione o ficheiro de chave SSH privada que corresponde à chave pública que adicionou à VM.
  8. Na secção Parâmetros de autenticação, selecione Permitir encaminhamento de agentes.
  9. Clique em Abrir para estabelecer ligação à VM do anfitrião de bastião.
  10. A partir da VM do bastion host, estabeleça ligação através do endereço IP interno de uma VM com o seguinte comando:

    ssh USERNAME@INTERNAL_IP

    Substitua o seguinte:

    • USERNAME: o nome de utilizador é o que especificou quando criou a chave SSH.
    • INTERNAL_IP: o endereço IP interno da VM.

Resolução de problemas

Para encontrar métodos de diagnóstico e resolução de problemas de ligações SSH com falhas, consulte o artigo Resolução de problemas de SSH.

O que se segue?