As VMs que oferecem suporte a certificados de Login do SO aceitam conexões de chaves e certificados SSH. Os certificados SSH são chaves SSH assinadas por outra chave confiável, nesse caso, uma autoridade certificadora gerenciada pelo Login do SO. Este documento descreve como configurar VMs de Login do SO para exigir certificados SSH para conexões SSH e bloquear conexões de chaves SSH não assinadas.
Ao configurar o Login do SO para exigir certificados SSH para conexões com VMs, somente os certificados SSH assinados pela autoridade certificadora podem se conectar a VMs. As conexões de chaves SSH não assinadas são rejeitadas. Os certificados SSH têm um prazo de validade de cinco minutos. Depois disso, eles não podem mais ser usados para se conectar a VMs, e um novo certificado precisa ser gerado.
Recomendamos configurar o Login do SO para exigir certificados SSH para conexões SSH como uma camada extra de segurança contra usuários mal-intencionados. Os certificados SSH são de curta duração e válidos apenas para uma VM específica. Isso significa que, se forem comprometidos, a superfície de ataque será significativamente menor e a janela de ataque será significativamente mais curta do que a das chaves SSH de longa duração.
Se a organização usa a federação de identidade de colaboradores, consulte Usar a federação de identidade de colaboradores com o Login do SO para saber como ativar certificados SSH para sua organização.
Antes de começar
- Configure o Login do SO e atribua papéis do IAM para o Login do SO.
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma sua identidade para acesso a Google Cloud serviços e APIs do. Para executar
código ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o Google Cloud console para acessar Google Cloud serviços e APIs, não é necessário configurar a autenticação.
gcloud
-
Instale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
- Defina uma região e uma zona padrão.
Limitações
- A VM a que você está se conectando precisa ter o OpenSSH versão 7.4 ou mais recente para usar certificados SSH.
Exigir certificados SSH
É possível configurar o Login do SO para exigir certificados SSH para todas as conexões SSH com VMs de Login do SO no seu projeto ou para VMs únicas. Depois de configurar o Login do SO para exigir certificados SSH, as conexões SSH do Google Cloud console e da CLI gcloud usam certificados SSH por padrão. Se você não quiser configurar o Login do SO para exigir certificados, mas quiser usar certificados para se conectar a VMs, será necessário se conectar usando ferramentas de terceiros, conforme descrito na seção Conectar-se a uma VM usando um certificado SSH.
Exigir certificados SSH para todas as VMs ativadas para o Login do SO em um projeto
Para exigir certificados SSH para todas as conexões com todas as VMs que usam o Login do SO em seu projeto, use o Google Cloud console ou a CLI gcloud.
Console
Para exigir certificados SSH para todas as conexões com VMs ativadas para o Login do SO, use
o Google Cloud console para definir enable-oslogin e
enable-oslogin-certificates como TRUE nos metadados do projeto:
Acesse a página Metadados.
Clique em Editar.
Clique em Adicionar item.
- No campo Chave, digite
enable-oslogin. - No campo Valor, insira
TRUE.
- No campo Chave, digite
Clique em Adicionar item.
- No campo Chave, digite
enable-oslogin-certificates. - No campo Valor, insira
TRUE.
- No campo Chave, digite
Clique em Salvar.
gcloud
Para exigir certificados SSH para todas as conexões com VMs ativadas para o Login do SO, use
o gcloud compute project-info add-metadata comando
para definir enable-oslogin=TRUE e enable-oslogin-certificates=TRUE nos metadados do projeto:
gcloud compute project-info add-metadata \
--metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
Exigir certificados SSH em uma única VM ativada para o Login do SO
Para exigir certificados para todas as conexões SSH com uma única VM que usa o Login do SO, use o console Google Cloud ou a CLI gcloud.
Console
Para exigir certificados SSH para todas as conexões com uma única VM, use o
Google Cloud console para definir enable-oslogin e
enable-oslogin-certificates como TRUE nos metadados da instância:
Acesse a página Instâncias da VM.
Clique no nome da VM em que você quer exigir certificados SSH.
Clique em Editar.
Na seção Metadados, clique em Adicionar item.
- No campo Chave, digite
enable-oslogin. - No campo Valor, insira
TRUE.
- No campo Chave, digite
Clique em Adicionar item.
- No campo Chave, digite
enable-oslogin-certificates. - No campo Valor, insira
TRUE.
- No campo Chave, digite
Clique em Salvar.
gcloud
Para exigir certificados SSH para todas as conexões com uma única VM, use o
gcloud compute instances add-metadata comando
para definir enable-oslogin=TRUE e enable-oslogin-certificates=TRUE nos metadados da instância:
gcloud compute instances add-metadata VM_NAME \
--metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
Substitua VM_NAME pelo nome da VM.
Conectar-se a uma VM usando um certificado SSH
Depois de configurar o Login do SO para exigir certificados SSH, as conexões SSH do console e da CLI gcloud usam certificados SSH por padrão. Google Cloud Se você não quiser configurar o Login do SO para exigir certificados, mas quiser usar certificados para se conectar a VMs, será necessário se conectar usando ferramentas de terceiros.
Console
Para se conectar a VMs usando o SSH no navegador no Google Cloud console, faça o seguinte:
- No Google Cloud console do, acesse a página Instâncias de VM.
-
Na lista de instâncias de máquina virtual, clique em SSH na linha de
a instância que você quer se conectar.

gcloud
Use o
gcloud beta compute ssh comando
para se conectar a uma VM usando um certificado:
gcloud beta compute ssh VM_NAME
Substitua VM_NAME pelo nome da VM a que você quer se conectar.
Ferramentas de terceiros
Para usar um certificado SSH com um cliente SSH de terceiros, faça o seguinte:
Crie uma chave SSH caso ainda não tenha uma.
Assine sua chave SSH pública usando o método
projects.locations.signSshPublicKey:POST https://oslogin.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION:signSshPublicKey { "ssh_public_key": "PUBLIC_KEY" "compute_instance": "COMPUTE_INSTANCE", "service_account": "SERVICE_ACCOUNT" }Substitua:
PROJECT_ID: o ID do projeto que contém a VM a que você quer se conectarLOCATION: a região em que a VM a que você quer se conectar está localizadaPUBLIC_KEY: o conteúdo do arquivo da sua chave pública SSHCOMPUTE_INSTANCE: a instância do Compute Engine a que você quer se conectar, no formatoprojects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID.SERVICE_ACCOUNT: a conta de serviço anexada à instância. Exclua esse campo se a instância não tiver uma conta de serviço anexada.
Copie o certificado SSH da saída do método
projects.locations.signSshPublicKeye salve o conteúdo em um novo arquivo.Execute o comando a seguir para definir permissões no arquivo do certificado SSH:
sudo chmod 600 FILE_NAME
Substitua
FILE_NAMEpelo nome do arquivo.Conecte-se à VM usando o seguinte comando:
ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
Substitua:
PATH_TO_PRIVATE_KEY: o caminho para o arquivo da sua chave SSH particular.PATH_TO_SSH_CERTIFICATE: o caminho para o arquivo do seu certificado SSH.USERNAME: seu nome de usuário do Login do SOEXTERNAL_IP: o endereço IP externo da VM.
Solução de problemas
Se não for possível se conectar a VMs que você configurou para exigir certificados SSH, isso pode ser devido ao seguinte:
- A VM está usando uma versão não compatível do OpenSSH. Para
contornar esse problema, desative os certificados nos metadados da VM definindo
enable-oslogin-certificatescomoFALSEem metadados da instância.
A seguir
- Saiba mais sobre o Login do SO.
- Saiba como configurar o login do SO com a verificação em duas etapas.
- Saiba como gerenciar o Login do SO em uma organização.