Conexões SSH com as VMs do Linux


O Compute Engine usa a autenticação SSH baseada em chave para estabelecer conexões com as instâncias de máquina virtual (VM, na sigla em inglês) do Linux. Por padrão, usuários locais com senhas não são configurados em VMs do Linux.

Antes de você se conectar a uma VM, várias configurações precisam ser realizadas. Se você usa o Console do Google Cloud ou a ferramenta de linha de comando gcloud para se conectar às suas VMs, o Compute Engine executa essas configurações em seu nome. O Compute Engine executa configurações diferentes, dependendo da ferramenta usada para se conectar e do gerenciamento de acesso às VMs usando metadados ou Login do SO.

Conexões SSH gerenciadas por metadados

Por padrão, o Compute Engine usa metadados personalizados de projeto e/ou instância para configurar chaves SSH e para gerenciar o acesso SSH. Se você usar o login do SO, as chaves SSH de metadados serão desativadas.

Clique em cada guia para saber mais sobre as configurações que o Compute Engine executa antes de conceder conexões SSH ao usar o Console do Google Cloud, a ferramenta gcloud ou ferramentas de terceiros para se conectar a VMs. Se você se conectar a VMs sem usar o Console do Google Cloud ou a ferramenta gcloud, será necessário executar algumas configurações.

Console

  1. Use o botão SSH no Console do Google Cloud para conectar-se à VM.
  2. O Compute Engine define um nome de usuário e cria um par de chaves SSH temporárias com a seguinte configuração:
    • Seu nome de usuário é definido como o nome de usuário da sua Conta do Google. Por exemplo, se o endereço de e-mail associado à sua Conta do Google for cloudysanfrancisco@gmail.com, o nome de usuário será cloudysanfrancisco.
    • Suas chaves SSH públicas e privadas são armazenadas na sessão do navegador.
    • Sua chave SSH tem uma validade de cinco minutos. Cinco minutos após o Compute Engine criar a chave, não será mais possível usá-la para se conectar à VM.
  3. O Compute Engine faz upload da chave SSH pública e do nome de usuário para os metadados.
  4. O Compute Engine recupera a chave SSH e o nome de usuário dos metadados, cria uma conta de usuário com o nome de usuário e a chave pública e armazena a chave pública no arquivo ~/.ssh/authorized_keys do usuário na VM.
  5. O Compute Engine concede sua conexão.

gcloud

  1. Use o comando gcloud compute ssh para conectar-se à VM.
  2. O Compute Engine define um nome de usuário e cria um par de chaves SSH permanentes com as seguintes configurações:
    • O nome de usuário é definido como o nome de usuário da sua máquina local.
    • Sua chave SSH pública é armazenada nos metadados do projeto. Se o Compute Engine não puder armazenar a chave SSH nos metadados do projeto, por exemplo, porque block-project-ssh-keys está definido como TRUE, o Compute Engine armazenará a chave SSH nos metadados da instância.
    • A chave SSH privada é armazenada na máquina local.
    • Sua chave SSH não tem um prazo de validade. Ela será usada para todas as conexões SSH futuras que você fizer, a menos que você configure uma nova chave.
  3. O Compute Engine faz upload da chave SSH pública e do nome de usuário para os metadados.
  4. O Compute Engine recupera a chave SSH e o nome de usuário dos metadados, cria uma conta de usuário com o nome de usuário e a chave pública e armazena a chave pública no arquivo ~/.ssh/authorized_keys do usuário na VM.
  5. O Compute Engine concede sua conexão.

Ferramentas de terceiros

  1. Você cria um par de chaves SSH e nome de usuário. Consulte os detalhes em Como criar uma nova chave SSH.
  2. Você faz o upload da chave pública e do nome de usuário para os metadados. Consulte Como formatar seus arquivos de chave SSH pública para ver os requisitos de formato de chave SSH do Compute Engine.
  3. Você se conecta à VM.
  4. O Compute Engine recupera a chave SSH e o nome de usuário dos metadados, cria uma conta de usuário com o nome de usuário e a chave pública e armazena a chave pública no arquivo ~/.ssh/authorized_keys do usuário na VM.
  5. O Compute Engine concede sua conexão.

Conexões SSH gerenciadas pelo login do SO

Quando o Login do SO está ativado, o Compute Engine recusa conexões de chaves SSH armazenadas nos metadados.

Clique em cada guia para saber mais sobre as configurações do Compute Engine antes de conceder conexões SSH ao usar o Console do Google Cloud, a ferramenta gcloud ou ferramentas de terceiros para se conectar a VMs. Se você se conectar a VMs sem usar o Console do Google Cloud ou a ferramenta gcloud, será necessário executar algumas configurações.

Console

  1. Use o botão SSH no Console do Google Cloud para conectar-se à VM.
  2. O Compute Engine define um nome de usuário e cria um par de chaves SSH temporárias com a seguinte configuração:
    • O nome de usuário é o que foi definido pelo administrador do Cloud Identity ou do Google Workspace da sua organização. Caso sua organização não tenha configurado um nome de usuário para você ou o projeto não pertença a uma organização, o Compute Engine usará o e-mail da Conta do Google no seguinte formato:

      USERNAME_DOMAIN_SUFFIX
      Por exemplo, se o e-mail associado à sua Conta do Google for cloudysanfrancisco@gmail.com, seu nome de usuário gerado será cloudysanfrancisco_gmail_com.

    • A chave SSH pública é armazenada na sessão do navegador e na sua Conta do Google.
    • Sua chave SSH privada é armazenada na sessão do navegador.
    • Sua chave SSH tem uma validade de cinco minutos. Cinco minutos após o Compute Engine criar a chave, não será mais possível usá-la para se conectar à VM.
  3. O Compute Engine resolve o nome de usuário fornecido para sua conta de login do SO na VM usando módulos de serviço NSS.
  4. O Compute Engine executa a autorização do IAM usando as configurações de PAM para garantir que você tenha as permissões necessárias para se conectar.
  5. O Compute Engine recupera a chave SSH da sua conta de usuário e a fornece ao OpenSSH na VM usando o comando de chaves SSH autorizadas.
  6. O Compute Engine concede sua conexão.

gcloud

  1. Use o comando gcloud compute ssh para conectar-se à VM.
  2. O Compute Engine define um nome de usuário e cria um par de chaves SSH permanentes com as seguintes configurações:
    • O nome de usuário é o que foi definido pelo administrador do Cloud Identity ou do Google Workspace da sua organização. Caso a organização não tenha configurado um nome de usuário para você, o Compute Engine usará o e-mail da sua Conta do Google no seguinte formato:

      USERNAME_DOMAIN_SUFFIX
      Por exemplo, se o e-mail associado à sua Conta do Google for cloudysanfrancisco@gmail.com, seu nome de usuário gerado será cloudysanfrancisco_gmail_com.

    • Sua chave SSH pública é armazenada na sua Conta do Google.
    • Sua chave SSH privada é armazenada na máquina local no arquivo google_compute_engine.
    • Sua chave SSH não tem um prazo de validade. Ela será usada para todas as conexões SSH futuras que você fizer, a menos que você configure uma nova chave.
  3. O Compute Engine resolve o nome de usuário fornecido para sua conta de login do SO na VM usando módulos de serviço NSS.
  4. O Compute Engine executa a autorização do IAM usando as configurações de PAM para garantir que você tenha as permissões necessárias para se conectar.
  5. O Compute Engine recupera a chave SSH da sua conta de usuário e a fornece ao OpenSSH na VM usando o comando de chaves SSH autorizadas.
  6. O Compute Engine concede sua conexão.

Ferramentas de terceiros

  1. Você cria um par de chaves SSH. Consulte os detalhes em Como criar uma nova chave SSH.
  2. Você faz upload da sua chave SSH pública para seu perfil de Login do SO. Consulte Como adicionar chaves SSH a uma conta de usuário para detalhes.
    • O Compute Engine armazena a chave na sua Conta do Google.
    • O Compute Engine configura seu nome de usuário no formato padrão:
          USERNAME_DOMAIN_SUFFIX
      Por exemplo, se o e-mail associado à Conta do Google for cloudysanfrancisco@gmail.com, seu nome de usuário gerado será cloudysanfrancisco_gmail_com.
  3. Se quiser, defina um nome de usuário com a API Google Workspace Admin SDK Directory.
  4. Você se conecta à VM.
  5. O Compute Engine resolve o nome de usuário fornecido para sua conta de login do SO na VM usando módulos de serviço NSS.
  6. O Compute Engine executa a autorização do IAM usando as configurações de PAM para garantir que você tenha as permissões necessárias para se conectar.
  7. O Compute Engine recupera a chave SSH da sua conta de usuário e a fornece ao OpenSSH na VM usando o comando de chaves SSH autorizadas.
  8. O Compute Engine concede sua conexão.

A seguir