Este documento descreve como impedir que os usuários acessem instâncias de máquina virtual (VM, na sigla em inglês) removendo e bloqueando chaves SSH das VMs.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar código ou exemplos em um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:
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 do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
- Set a default region and zone.
REST
Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
Remover chaves SSH
É possível remover chaves SSH de VMs que usam o Login do SO e VMs que usam chaves SSH baseadas em metadados.Remover chaves SSH de VMs que usam o login do SO
As VMs que usam o login do SO aceitam chaves SSH associadas à sua Conta do Google. É possível remover uma chave SSH pública da sua conta de usuário usando a Google Cloud CLI ou a API OS Login. Se você for administrador da sua organização, poderá remover as chaves SSH das contas de usuário usando a API Directory. O Compute Engine remove automaticamente as chaves expiradas da sua Conta do Google.
gcloud
Para remover uma chave SSH pública da sua conta, faça o seguinte:
Se você não souber qual chave quer remover, execute o comando
gcloud compute os-login describe-profilepara visualizar todas as chaves associadas à sua conta:gcloud compute os-login describe-profile
Copie o valor
fingerprintda chave que você quer excluir.Remova a chave da sua conta usando o comando
gcloud compute os-login ssh-keys remove:gcloud compute os-login ssh-keys remove --key=KEY
Substitua
KEYpela chave SSH pública que você quer remover ou a impressão digital do Login do SO da chave que você quer remover.
REST
Para remover uma chave SSH pública da sua conta, faça o seguinte:
Se você não souber qual chave quer remover, use o método
users.getLoginProfilepara ver todas as chaves associadas à sua conta:GET https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL/loginProfile
Substitua
ACCOUNT_EMAILpelo endereço de e-mail associado à sua conta.Copie o valor
fingerprintda chave que você quer excluir.Remova a chave da sua conta usando o método
users.sshPublicKeys.delete:DELETE https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL/sshPublicKeys/FINGERPRINT
Substitua:
ACCOUNT_EMAIL: o endereço de e-mail associado à conta.FINGERPRINT: a impressão digital SHA-256 da chave a ser removida
Remover chaves SSH das VMs que usam chaves baseadas em metadados
É possível remover uma chave SSH pública dos metadados do projeto ou da instância usando o consoleGoogle Cloud , a CLI gcloud ou a API Compute Engine.
Depois que você remover a última chave dos metadados de um usuário específico ou se ela expirar, o Compute Engine excluirá o arquivo
Cuidado: se você gerenciar chaves SSH nos metadados, talvez impeça a conexão dos membros do projeto às VMs. Além disso, você corre o risco de conceder aos usuários, fora do projeto, acesso não intencional às VMs. Para mais informações, consulte riscos do gerenciamento manual de chaves.~/.ssh/authorized_keysdo usuário na VM.Remover uma chave pública dos metadados do projeto
Remova uma chave SSH pública dos metadados do projeto para remover o acesso a todas as VMs de um projeto.
Ao remover uma chave dos metadados usando a CLI gcloud e a API Compute Engine, é preciso recuperar a lista de chaves, editar a lista de chaves para remover as chaves indesejadas e substituir as chaves antigas com a lista de chaves que você quer manter, conforme explicado na seção a seguir.
Console
Para remover uma chave SSH pública dos metadados do projeto usando o consoleGoogle Cloud , faça o seguinte:
No Google Cloud console, acesse a página Metadados.
Clique na guia Chaves SSH.
Clique em Editar no topo da página.
Navegue até a chave SSH que você quer remover e clique no botão "Excluir" ao lado da chave SSH.
Repita essa etapa para cada chave SSH que você quer remover.
Clique em Salvar.
gcloud
Para remover uma chave SSH pública dos metadados do projeto usando a CLI gcloud, faça o seguinte:
Execute o comando
gcloud compute project-info describepara receber os metadados do projeto:gcloud compute project-info describe
A resposta será semelhante a:
... metadata: ...
- key: ssh-keysvalue: |- cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8 google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"} ...Copie o valor de metadados
ssh-keys.Crie e abra um novo arquivo de texto na estação de trabalho.
No arquivo, cole a lista de chaves SSH que você acabou de copiar e exclua as chaves que quer remover dos metadados do projeto.
Salve e feche o arquivo.
Execute o comando
gcloud compute project-info add-metadatapara definir o valorssh-keysde todo o projeto:gcloud compute project-info add-metadata --metadata-from-file=ssh-keys=KEY_FILE
Substitua
KEY_FILEpor um dos seguintes:- O caminho para o arquivo criado na etapa anterior, se o projeto tiver chaves SSH atuais;
- O caminho para o novo arquivo de chave SSH pública, se o projeto não tiver chaves SSH existentes.
REST
Para remover uma chave SSH pública dos metadados do projeto usando a API Compute Engine, faça o seguinte:
Use o método
projects.getpara obter os valoresfingerprintessh-keysdos metadados.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
Substitua
PROJECT_IDpela ID do seu projeto.A resposta é semelhante a:
... "fingerprint": "utgYE_XWtE8=", "items": [ { "key": "ssh-keys", "value": "cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF\nbaklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8 google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}" } ] ...Copie a lista de valores de chave SSH e exclua as chaves que você quer remover.
Use
projects.setCommonInstanceMetadatapara remover as chaves SSH.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS" } ] "fingerprint": "FINGERPRINT" }Substitua:
PROJECT_ID: o ID do projetoEXISTING_SSH_KEYS: a lista de chaves SSH que você quer manterFINGERPRINT: o valor dofingerprintda resposta da solicitaçãoprojects.get
Remover uma chave SSH pública dos metadados da instância
Remova uma chave SSH pública dos metadados da instância para remover o acesso a uma única VM.
Ao remover uma chave dos metadados usando a CLI gcloud e a API Compute Engine, é preciso recuperar a lista de chaves, editar a lista de chaves para remover as chaves indesejadas e substituir as chaves antigas com a lista de chaves que você quer manter, conforme explicado na seção a seguir.
Console
Para remover uma chave SSH pública dos metadados da instância usando o consoleGoogle Cloud , faça o seguinte:
No console do Google Cloud , acesse a página Instâncias de VM.
Clique no nome da VM para a qual você quer remover uma chave.
Clique em Editar.
Na seção Chaves SSH, clique em Mostrar e editar. A seção é expandida e mostra todas as chaves SSH públicas no nível da instância.
Clique no botão de exclusão ao lado da chave SSH que você quer remover.
Repita essa etapa para cada chave SSH que você quer remover.
Clique em Salvar.
gcloud
Para remover uma chave SSH pública dos metadados da instância usando a CLI gcloud, faça o seguinte:
Execute o comando
gcloud compute instances describepara receber os metadados da VM:gcloud compute instances describe VM_NAME
Substitua VM_NAME pelo nome da VM na qual você precisa adicionar ou remover chaves SSH públicas.
A resposta será semelhante a:
... metadata: ...
- key: ssh-keysvalue: |- cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8 google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"} ...Copie o valor de metadados
ssh-keys.Crie e abra um novo arquivo de texto na estação de trabalho local.
No arquivo, cole a lista de chaves SSH que você acabou de copiar e remova as chaves que quiser excluir.
Salve e feche o arquivo.
Execute o comando
gcloud compute project-info add-metadatapara definir o valorssh-keysde todo o projeto:gcloud compute instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
Substitua:
VM_NAME: a VM para onde você quer remover a chave SSH;KEY_FILE: o caminho para o arquivo que contém a lista de todas as chaves SSH do projeto
REST
Para remover uma chave SSH pública dos metadados da instância usando a API Compute Engine, faça o seguinte:
Use o método
instances.getpara receber os valoresfingerprintessh-keysdos metadados.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua:
PROJECT_ID: o ID do projetoZONE: a zona da VM à qual você está adicionando uma chave SSH;VM_NAME: a VM a que você está adicionando uma chave SSH.
A resposta é semelhante a:
... "fingerprint": "utgYE_XWtE8=", "items": [ { "key": "ssh-keys", "value": "cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF\nbaklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8 google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}" } ] ...Copie a lista de valores de chave SSH e exclua as chaves que você quer remover.
Use
instances.setMetadatapara remover as chaves SSH.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS } ] "fingerprint": "FINGERPRINT" }Substitua:
PROJECT_ID: o ID do projetoEXISTING_SSH_KEYS: o valor da chavessh-keysda resposta da solicitaçãoprojects.get;FINGERPRINT: o valor dofingerprintda resposta da solicitaçãoinstances.get
Bloquear chaves SSH do projeto de VMs que usam chaves SSH baseadas em metadados
Para impedir que as VMs aceitem chaves SSH armazenadas nos metadados do projeto, bloqueie as chaves SSH do projeto das VMs. É possível bloquear chaves SSH de VMs ao criar uma VM ou depois de criar uma VM.
Bloquear chaves SSH do projeto de uma VM durante a criação da VM
É possível bloquear as chaves SSH do projeto nas VMs durante a criação da VM, por meio do consoleGoogle Cloud , da CLI gcloud ou da API Compute Engine.
Console
Para criar uma instância e impedir que ela aceite chaves SSH armazenadas em metadados do projeto usando o console Google Cloud , faça o seguinte:
No console do Google Cloud , acesse a página Criar uma instância.
Para bloquear chaves SSH do projeto, faça o seguinte:
No menu de navegação, clique em Segurança.
Expanda a seção Gerenciar acesso.
Para desativar o Login do SO, desmarque a caixa de seleção Controlar o acesso à VM pelas permissões do IAM.
Marque a caixa de seleção Bloquear chaves SSH em todo o projeto.
Opcional: especifique outras opções de configuração. Para mais informações, consulte Opções de configuração durante a criação da instância.
Para criar e iniciar a instância, clique em Criar.
gcloud
Para criar uma VM e impedir que ela aceite chaves SSH armazenadas em metadados do projeto usando a CLI gcloud, use o comando
gcloud compute instances create:gcloud compute instances create VM_NAME \ --metadata block-project-ssh-keys=TRUESubstitua
VM_NAMEpelo nome da nova VM.REST
Para criar uma VM e impedir que ela aceite chaves SSH armazenadas em metadados do projeto usando o Compute Engine, crie uma solicitação
POSTpara o métodoinstances.insert:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Substitua:
PROJECT_ID: o ID do projeto;ZONE: a zona da VM;
No corpo da solicitação, forneça nomes de usuário e chaves SSH públicas na propriedade
items:... { "items": [ { "key": "block-project-ssh-keys", "value": TRUE } ] } ...Bloquear chaves SSH do projeto de uma VM após a criação da VM
É possível bloquear as chaves SSH do projeto nas VMs após a criação da VM usando o consoleGoogle Cloud , a CLI gcloud ou a API Compute Engine.
Console
Para impedir que as VMs aceitem conexões de chaves SSH armazenadas em metadados do projeto usando o console Google Cloud , faça o seguinte:
No console do Google Cloud , acesse a página Instâncias de VM.
Clique no nome da VM para bloquear as chaves SSH do projeto.
Clique em Editar.
Em Chaves SSH, marque a caixa de seleção Bloquear chaves SSH em todo o projeto.
Quando terminar de editar a configuração de conexão para chaves SSH, clique em Salvar.
gcloud
Para impedir que as VMs aceitem conexões de chaves SSH armazenadas em metadados do projeto usando a gcloud CLI, faça isto:
Execute o
gcloud compute instances add-metadatacomando:gcloud compute instances add-metadata VM_NAME --metadata block-project-ssh-keys=TRUE
Substitua
VM_NAMEpelo nome da VM para a qual você quer bloquear chaves SSH públicas em todo o projeto.REST
Para impedir que as VMs aceitem conexões de chaves SSH armazenadas em metadados do projeto usando a API Compute Engine, faça o seguinte:
Use o método
instances.getpara receber ofingerprintdos metadados.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua:
PROJECT_ID: o ID do projetoZONE: a zona da VM à qual você está adicionando uma chave SSH;VM_NAME: a VM a que você está adicionando uma chave SSH.
A resposta é semelhante a:
... "fingerprint": "utgYE_XWtE8=" ...
Use o método
instances.setMetadatapara definirblock-project-ssh-keyscomoTRUE:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "block-project-ssh-keys", "value": TRUE } ] "fingerprint": "FINGERPRINT" }Substitua:
PROJECT_IDé o código do projeto;ZONEé a zona em que a instância está localizada;INSTANCE_NAMEé a instância em que você quer bloquear as chaves em todo o projeto;FINGERPRINT: o valor defingerprintda resposta da solicitaçãoinstances.get.
A seguir
- Conheça os benefícios de usar o Login do SO para gerenciamento de acesso.
- Conecte-se a VMs usando as ferramentas do Google, para que você não precise gerenciar suas próprias chaves SSH.
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-10-19 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-10-19 UTC."],[],[]] -