Sobre as conexões SSH


O Compute Engine usa a autenticação SSH baseada em chave para estabelecer conexões com todas as instâncias de máquina virtual (VM, na sigla em inglês) do Linux. Também é possível ativar o SSH para VMs do Windows. Por padrão, as senhas não são configuradas para usuários locais 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 CLI do Google Cloud para se conectar às VMs, o Compute Engine realiza essas configurações por você. O Compute Engine realiza configurações diferentes, de acordo com a ferramenta usada para a conexão e o uso de metadados ou do Login do SO para gerenciar o acesso às VMs. O Login do SO só está disponível para VMs do Linux.

Conexões SSH gerenciadas por metadados

Por padrão, o Compute Engine usa metadados personalizados do projeto e/ou da instância para configurar chaves SSH e gerenciar o acesso SSH. No caso do Windows, todas as VMs usam metadados para gerenciar chaves SSH. No caso do Linux, elas podem usar chaves de metadados ou o Login do SO. 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 do Compute Engine antes de conceder conexões SSH ao usar o Console do Google Cloud, a CLI 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 CLI 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. Nas VMs do Windows, o Compute Engine não armazena a chave pública 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. Nas VMs do Windows, o Compute Engine não armazena a chave pública 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 Criar chaves SSH.
  2. Você faz o upload da chave pública e do nome de usuário para os metadados. Para saber mais detalhes, consulte Adicionar chaves SSH a VMs que usam chaves SSH baseadas em metadados.
  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. Nas VMs do Windows, o Compute Engine não armazena a chave pública na VM.
  5. O Compute Engine concede sua conexão.

Conexões SSH gerenciadas pelo login do SO

Quando você define os metadados do Login do SO, o Compute Engine exclui os arquivos authorized_keys da VM e não aceita mais conexões das chaves SSH armazenadas nos metadados do projeto ou da instância.

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 CLI 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 CLI 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 três minutos. Três 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 o AuthorizedKeysCommand para garantir que você tenha as permissões necessárias para se conectar.
  5. O AuthorizedKeysCommand recupera a chave SSH da sua conta de usuário para fornecê-la ao OpenSSH na VM.
  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 o AuthorizedKeysCommand para garantir que você tenha as permissões necessárias para se conectar.
  5. O AuthorizedKeysCommand recupera a chave SSH da sua conta de usuário para fornecê-la ao OpenSSH na VM.
  6. O Compute Engine concede sua conexão.

Ferramentas de terceiros

  1. Você cria um par de chaves SSH. Consulte os detalhes em Criar chaves SSH.
  2. Você faz upload da sua chave SSH pública para seu perfil de Login do SO. Para mais detalhes, consulte Adicionar chaves a VMs que usam o Login do SO.
    • 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 o AuthorizedKeysCommand para garantir que você tenha as permissões necessárias para se conectar.
  7. O AuthorizedKeysCommand recupera a chave SSH da sua conta de usuário para fornecê-la ao OpenSSH na VM.
  8. O Compute Engine concede sua conexão.

A seguir