As VMs que suportam certificados do Início de sessão do SO suportam ligações de chaves SSH e certificados SSH. Os certificados SSH são chaves SSH que foram assinadas por outra chave fidedigna. Neste caso, trata-se de uma autoridade de certificação gerida pelo Início de sessão do SO. Este documento descreve como configurar VMs com o Início de sessão do SO para exigirem certificados SSH para ligações SSH e bloquear ligações de chaves SSH não assinadas.
Quando configura o Início de sessão do SO para exigir certificados SSH para ligações a VMs, apenas os certificados SSH assinados pela autoridade de certificação são permitidos para estabelecer ligação a VMs. As ligações de chaves SSH não assinadas são rejeitadas. Os certificados SSH têm um prazo de validade de cinco minutos, após o qual deixam de poder ser usados para estabelecer ligação a VMs e tem de ser gerado um novo certificado.
Recomendamos que configure o Início de sessão do SO para exigir certificados SSH para ligações SSH como uma camada adicional de segurança contra utilizadores maliciosos. Os certificados SSH têm uma duração curta e só são válidos para uma VM específica, o que significa que, se forem comprometidos, a respetiva superfície de ataque é significativamente menor e a respetiva janela de ataque é significativamente mais curta do que a das chaves SSH de longa duração.
Se a sua organização usar a federação de identidades da força de trabalho, consulte o artigo Use a federação de identidades da força de trabalho com o Início de sessão do SO para saber como ativar os certificados SSH para a sua organização.
Antes de começar
- Configure o Início de sessão do SO e atribua funções do IAM do Início de sessão do SO.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
Limitações
- A VM à qual está a estabelecer ligação tem de ter a versão 7.4 ou posterior do OpenSSH para usar certificados SSH.
Exigir certificados SSH
Pode configurar o Início de sessão do SO para exigir certificados SSH para todas as ligações SSH a VMs do Início de sessão do SO no seu projeto ou para VMs individuais. Depois de configurar o Início de sessão no SO para exigir certificados SSH, as ligações SSH a partir da Google Cloud consola e da CLI gcloud usam certificados SSH por predefinição. Se não quiser configurar o início de sessão do SO para exigir certificados, mas quiser usar certificados para estabelecer ligação a VMs, tem de estabelecer ligação através de ferramentas de terceiros, conforme descrito na secção Estabeleça ligação a uma VM através de um certificado SSH.
Exija certificados SSH para todas as VMs com o Início de sessão do SO ativado num projeto
Para exigir certificados SSH para todas as ligações a todas as VMs que usam o Início de sessão do SO no seu projeto, use a consola ou a CLI gcloud. Google Cloud
Consola
Para exigir certificados SSH para todas as ligações a VMs com o Início de sessão no SO ativado, use a consola para definir
enable-oslogin
eenable-oslogin-certificates
comoTRUE
nos metadados do projeto: Google CloudAceda à página Metadados.
Clique em Edit.
Clique em Adicionar item.
- No campo Chave, introduza
enable-oslogin
. - No campo Valor, introduza
TRUE
.
- No campo Chave, introduza
Clique em Adicionar item.
- No campo Chave, introduza
enable-oslogin-certificates
. - No campo Valor, introduza
TRUE
.
- No campo Chave, introduza
Clique em Guardar.
gcloud
Para exigir certificados SSH para todas as ligações a VMs com o Início de sessão do SO ativado, use o comando
gcloud compute project-info add-metadata
para definirenable-oslogin=TRUE
eenable-oslogin-certificates=TRUE
nos metadados do projeto:gcloud compute project-info add-metadata \ --metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
Exija certificados SSH numa única VM com o Início de sessão do SO ativado
Para exigir certificados para todas as ligações SSH a uma única VM que use o início de sessão do SO, use a Google Cloud consola ou a CLI gcloud.
Consola
Para exigir certificados SSH para todas as ligações a uma única VM, use a consola para definir
enable-oslogin
eenable-oslogin-certificates
comoTRUE
nos metadados da instância:Google CloudAceda à página Instâncias de VM.
Clique no nome da VM para a qual quer exigir certificados SSH.
Clique em Edit.
Na secção Metadados, clique em Adicionar item.
- No campo Chave, introduza
enable-oslogin
. - No campo Valor, introduza
TRUE
.
- No campo Chave, introduza
Clique em Adicionar item.
- No campo Chave, introduza
enable-oslogin-certificates
. - No campo Valor, introduza
TRUE
.
- No campo Chave, introduza
Clique em Guardar.
gcloud
Para exigir certificados SSH para todas as ligações a uma única VM, use o comando
gcloud compute instances add-metadata
para definirenable-oslogin=TRUE
eenable-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 sua VM.Estabeleça ligação a uma VM através de um certificado SSH
Depois de configurar o Início de sessão do SO para exigir certificados SSH, as ligações SSH a partir da consola e da CLI gcloud usam certificados SSH por predefinição. Google Cloud Se não quiser configurar o início de sessão no SO para exigir certificados, mas quiser usar certificados para se ligar a VMs, tem de se ligar através de ferramentas de terceiros.
Consola
Ligue-se às VMs através do SSH no navegador a partir da Google Cloud consola, fazendo o seguinte:
- In the Google Cloud console, go to the VM instances page.
-
In the list of virtual machine instances, click SSH in the row of
the instance that you want to connect to.
gcloud
Use o comando
gcloud beta compute ssh
para estabelecer ligação a uma VM através de um certificado:gcloud beta compute ssh VM_NAME
Substitua
VM_NAME
pelo nome da MV à qual quer estabelecer ligação.Ferramentas de terceiros
Para usar um certificado SSH com um cliente SSH de terceiros, faça o seguinte:
Crie uma chave SSH se ainda não tiver uma.
Assine a sua chave pública de SSH através do 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 o seguinte:
PROJECT_ID
: o ID do projeto que contém a VM à qual quer estabelecer ligaçãoLOCATION
: a região onde se encontra a VM à qual quer estabelecer ligaçãoPUBLIC_KEY
: o conteúdo do ficheiro da chave pública de SSHCOMPUTE_INSTANCE
: a instância do Compute Engine à qual se ligar, no formatoprojects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID
.SERVICE_ACCOUNT
: a conta de serviço anexada à instância. Elimine este campo se a instância não tiver uma conta de serviço anexada.
Copie o certificado SSH do resultado do
projects.locations.signSshPublicKey
método e guarde o conteúdo num novo ficheiro.Defina autorizações no ficheiro de certificado SSH executando o seguinte comando:
sudo chmod 600 FILE_NAME
Substitua
FILE_NAME
pelo nome do ficheiro.Estabeleça ligação à VM através do seguinte comando:
ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
Substitua o seguinte:
PATH_TO_PRIVATE_KEY
: o caminho para o ficheiro de chave SSH privada.PATH_TO_SSH_CERTIFICATE
: o caminho para o ficheiro de certificado SSH.USERNAME
: o seu nome de utilizador do Início de sessão do SOEXTERNAL_IP
: o endereço IP externo da VM.
Resolução de problemas
Se não conseguir estabelecer ligação a VMs que configurou para exigirem certificados SSH, isso pode dever-se ao seguinte:
- A sua VM está a usar uma versão não suportada do OpenSSH. Para contornar este problema, desative os certificados nos metadados da VM definindo
enable-oslogin-certificates
comoFALSE
nos metadados da instância.
O que se segue?
- Saiba mais acerca do início de sessão no SO.
- Saiba como configurar o início de sessão no SO com a validação em dois passos.
- Saiba como gerir o início de sessão no SO numa organização.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-19 UTC.
-