Questo documento descrive come impedire agli utenti di accedere alle istanze delle macchine virtuali (VM) rimuovendo e bloccando le chiavi SSH dalle VM.
Prima di iniziare
-
Se non l'hai già fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità dell'utente per ottenere l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione in Compute Engine come segue.
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
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Set a default region and zone.
Se non sai quale chiave vuoi rimuovere, esegui il comando
gcloud compute os-login describe-profile
per visualizzare tutte le chiavi associate al tuo account:gcloud compute os-login describe-profile
Copia il valore
fingerprint
della chiave che vuoi eliminare.Rimuovi la chiave dal tuo account utilizzando il comando
gcloud compute os-login ssh-keys remove
:gcloud compute os-login ssh-keys remove --key=KEY
Sostituisci
KEY
con la chiave SSH pubblica che vuoi rimuovere o con l'impronta di OS Login per la chiave da rimuovere.Se non sai quale chiave vuoi rimuovere, usa il metodo
users.getLoginProfile
per visualizzare tutte le chiavi associate al tuo account:GET https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL/loginProfile
Sostituisci
ACCOUNT_EMAIL
con l'indirizzo email associato al tuo account.Copia il valore
fingerprint
della chiave che vuoi eliminare.Rimuovi la chiave dal tuo account utilizzando il metodo
users.sshPublicKeys.delete
:DELETE https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL/sshPublicKeys/FINGERPRINT
Sostituisci quanto segue:
ACCOUNT_EMAIL
: l'indirizzo email associato al tuo accountFINGERPRINT
: l'impronta SHA-256 della chiave da rimuovere
Nella console Google Cloud, vai alla pagina Metadati.
Fai clic sulla scheda Chiavi SSH.
Fai clic su
Modifica nella parte superiore della pagina.Accedi alla chiave SSH che vuoi rimuovere e fai clic sul pulsante Elimina
accanto alla chiave SSH.Ripeti questo passaggio per ogni chiave SSH che vuoi rimuovere.
Fai clic su Salva.
Esegui il comando
gcloud compute project-info describe
per recuperare i metadati per il progetto:gcloud compute project-info describe
L'output è simile al seguente:
... metadata: ...
- key: ssh-keys
value: |- cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8 google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"} ...Copia il valore dei metadati
ssh-keys
.Crea e apri un nuovo file di testo sulla workstation.
Nel file, incolla l'elenco delle chiavi SSH appena copiate, quindi elimina le chiavi che vuoi rimuovere dai metadati di progetto.
Salva e chiudi il file.
Esegui il comando
gcloud compute project-info add-metadata
per impostare il valoressh-keys
a livello di progetto:gcloud compute project-info add-metadata --metadata-from-file=ssh-keys=KEY_FILE
Sostituisci
KEY_FILE
con uno dei seguenti:- il percorso del file creato nel passaggio precedente, se il progetto aveva chiavi SSH esistenti
- il percorso del nuovo file di chiave SSH pubblico, se il progetto non aveva chiavi SSH esistenti
Utilizza il metodo
projects.get
per recuperare i valorifingerprint
essh-keys
dai metadati.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
Sostituisci
PROJECT_ID
con l'ID progetto.La risposta è simile alla seguente:
... "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"}" } ] ...
Copia l'elenco di valori delle chiavi SSH ed elimina le chiavi che vuoi rimuovere.
Utilizza
projects.setCommonInstanceMetadata
per rimuovere le chiavi SSH.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS" } ] "fingerprint": "FINGERPRINT" }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoEXISTING_SSH_KEYS
: l'elenco delle chiavi SSH che vuoi conservareFINGERPRINT
: il valore difingerprint
dalla risposta alla richiestaprojects.get
Nella console Google Cloud, vai alla pagina Metadati.
Fai clic sul nome della VM per cui vuoi rimuovere una chiave.
Fai clic su Modifica.
Nel riquadro centrale, in Chiavi SSH, fai clic su Mostra e modifica. La sezione si espande per mostrare tutte le chiavi SSH pubbliche a livello di istanza.
Fai clic sul pulsante di rimozione accanto al token che vuoi rimuovere:
Fai clic su Salva.
Esegui il comando
gcloud compute instances describe
per ottenere i metadati per la VM:gcloud compute instances describe VM_NAME
Sostituisci VM_NAME con il nome della VM per cui devi aggiungere o rimuovere le chiavi SSH pubbliche.
L'output è simile al seguente:
... metadata: ...
- key: ssh-keys
value: |- cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8 google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"} ...Copia il valore dei metadati
ssh-keys
.Crea e apri un nuovo file di testo sulla workstation locale.
Nel file, incolla l'elenco delle chiavi SSH che hai appena copiato, quindi rimuovi tutte le chiavi che vuoi eliminare.
Salva e chiudi il file.
Esegui il comando
gcloud compute project-info add-metadata
per impostare il valoressh-keys
a livello di progetto:gcloud compute instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
Sostituisci quanto segue:
VM_NAME
: la VM per cui vuoi rimuovere la chiave SSHKEY_FILE
: il percorso del file che contiene l'elenco di tutte le chiavi SSH del progetto
Usa il metodo
instances.get
per recuperare i valorifingerprint
essh-keys
dai metadati.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona della VM per cui stai aggiungendo una chiave SSHVM_NAME
: la VM per cui stai aggiungendo una chiave SSH
La risposta è simile alla seguente:
... "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"}" } ] ...
Copia l'elenco di valori delle chiavi SSH ed elimina le chiavi che vuoi rimuovere.
Utilizza
instances.setMetadata
per rimuovere le chiavi 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" }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoEXISTING_SSH_KEYS
: il valore della chiavessh-keys
dalla risposta alla richiestaprojects.get
FINGERPRINT
: il valore difingerprint
dalla risposta alla richiestainstances.get
Nella console Google Cloud, vai alla pagina Crea un'istanza.
Specifica i dettagli della VM.
Espandi la sezione Opzioni avanzate e procedi nel seguente modo:
Espandi la sezione Sicurezza.
Seleziona Blocca chiavi SSH a livello di progetto.
Per creare e avviare la VM, fai clic su Crea.
PROJECT_ID
: ID progettoZONE
: la zona della VMNella console Google Cloud, vai alla pagina Metadati.
Fai clic sul nome della VM per cui vuoi bloccare le chiavi SSH del progetto.
Fai clic su Modifica.
In Chiavi SSH, seleziona la casella di controllo Blocca chiavi SSH a livello di progetto.
Dopo aver modificato l'impostazione di connessione per le chiavi SSH, fai clic su Salva.
Utilizza il metodo
instances.get
per recuperarefingerprint
dai metadati.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona della VM per cui stai aggiungendo una chiave SSHVM_NAME
: la VM per cui stai aggiungendo una chiave SSH
La risposta è simile alla seguente:
... "fingerprint": "utgYE_XWtE8=" ...
Usa il metodo
instances.setMetadata
per impostareblock-project-ssh-keys
suTRUE
: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" }
Sostituisci quanto segue:
PROJECT_ID
è il tuo ID progettoZONE
è la zona in cui si trova l'istanzaINSTANCE_NAME
è l'istanza in cui vuoi bloccare le chiavi a livello di progetto.FINGERPRINT
: il valore difingerprint
dalla risposta alla richiestainstances.get
.
- Scopri i vantaggi dell'utilizzo di OS Login per la gestione degli accessi.
- Connettiti alle VM utilizzando gli strumenti Google, così non dovrai gestire le tue chiavi SSH.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
Per maggiori informazioni, consulta Autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Rimuovi chiavi SSH
Puoi rimuovere le chiavi SSH dalle VM che utilizzano OS Login e dalle VM che utilizzano chiavi SSH basate su metadati.Rimuovi le chiavi SSH dalle VM che utilizzano OS Login
Le VM che utilizzano OS Login accettano le chiavi SSH associate al tuo Account Google. Puoi rimuovere una chiave SSH pubblica dal tuo account utente utilizzando Google Cloud CLI o l'API OS Login. Se sei un amministratore della tua organizzazione, puoi rimuovere le chiavi SSH dagli account utente utilizzando l'API Directory. Compute Engine rimuove automaticamente le chiavi scadute dal tuo Account Google.
gcloud
Per rimuovere una chiave SSH pubblica dal tuo account:
REST
Per rimuovere una chiave SSH pubblica dal tuo account:
Rimuovi le chiavi SSH dalle VM che utilizzano chiavi basate su metadati
Puoi rimuovere una chiave SSH pubblica dai metadati di progetto o istanza utilizzando la console Google Cloud, gcloud CLI o l'API Compute Engine.
Dopo aver rimosso l'ultima chiave dai metadati per un determinato utente o l'ultima chiave nei metadati per un determinato utente scade, Compute Engine elimina il file
Attenzione: se gestisci chiavi SSH nei metadati, potresti impedire ai membri del progetto di connettersi alle VM. Inoltre, rischi di concedere agli utenti, compresi quelli esterni al progetto, l'accesso involontario alle VM. Per ulteriori informazioni, consulta la sezione sui rischi della gestione manuale delle chiavi.~/.ssh/authorized_keys
dell'utente nella VM.Rimuovi una chiave pubblica dai metadati di progetto
Rimuovi una chiave SSH pubblica dai metadati di progetto per rimuovere l'accesso a tutte le VM in un progetto.
Quando rimuovi una chiave dai metadati utilizzando gcloud CLI e l'API Compute Engine, devi recuperare l'elenco delle chiavi esistenti, modificare l'elenco delle chiavi per rimuovere le chiavi indesiderate e sovrascrivere le vecchie chiavi con l'elenco di chiavi che vuoi conservare, come spiegato nella sezione seguente.
Console
Per rimuovere una chiave SSH pubblica dai metadati di progetto utilizzando la console Google Cloud, segui questi passaggi:
gcloud
Per rimuovere una chiave SSH pubblica dai metadati di progetto utilizzando gcloud CLI, segui questi passaggi:
REST
Per rimuovere una chiave SSH pubblica dai metadati di progetto utilizzando l'API Compute Engine, segui questi passaggi:
Rimuovi una chiave SSH pubblica dai metadati dell'istanza
Rimuovi una chiave SSH pubblica dai metadati dell'istanza per rimuovere l'accesso a una singola VM.
Quando rimuovi una chiave dai metadati utilizzando gcloud CLI e l'API Compute Engine, devi recuperare l'elenco delle chiavi esistenti, modificare l'elenco delle chiavi per rimuovere le chiavi indesiderate e sovrascrivere le chiavi precedenti con l'elenco di chiavi che vuoi conservare, come spiegato nella sezione seguente.
Console
Per rimuovere una chiave SSH pubblica dai metadati dell'istanza utilizzando la console Google Cloud, segui questi passaggi:
gcloud
Per rimuovere una chiave SSH pubblica dai metadati dell'istanza utilizzando gcloud CLI, segui questi passaggi:
REST
Per rimuovere una chiave SSH pubblica dai metadati dell'istanza utilizzando l'API Compute Engine, segui questi passaggi:
Blocca le chiavi SSH del progetto dalle VM che utilizzano chiavi SSH basate su metadati
Puoi impedire alle VM di accettare le chiavi SSH archiviate nei metadati di progetto bloccando le chiavi SSH del progetto dalle VM. Puoi bloccare le chiavi SSH del progetto dalle VM quando crei una VM o dopo aver creato una VM.
Blocca le chiavi SSH del progetto da una VM durante la creazione della VM
Puoi bloccare le chiavi SSH del progetto dalle VM durante la creazione delle VM utilizzando la console Google Cloud, gcloud CLI o l'API Compute Engine.
Console
Per creare una VM e bloccarla in modo che non accetti le chiavi SSH archiviate nei metadati del progetto utilizzando la console Google Cloud, segui questi passaggi:
gcloud
Per creare una VM e bloccarla in modo che non accetti le chiavi SSH archiviate nei metadati del progetto utilizzando gcloud CLI, utilizza il comando
gcloud compute instances create
:gcloud compute instances create VM_NAME \ --metadata block-project-ssh-keys=TRUE
Sostituisci
VM_NAME
con il nome della nuova VM.REST
Per creare una VM e impedirle di accettare le chiavi SSH archiviate nei metadati del progetto utilizzando Compute Engine, crea una richiesta
POST
al metodoinstances.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Sostituisci quanto segue:
Nel corpo della richiesta, fornisci nomi utente e chiavi SSH pubbliche nella proprietà
items
:... { "items": [ { "key": "block-project-ssh-keys", "value": TRUE } ] } ...
Blocca le chiavi SSH del progetto da una VM dopo la creazione della VM
Puoi bloccare le chiavi SSH del progetto dalle VM dopo la creazione delle VM utilizzando la console Google Cloud, gcloud CLI o l'API Compute Engine.
Console
Per impedire alle VM di accettare connessioni dalle chiavi SSH archiviate nei metadati del progetto utilizzando la console Google Cloud, segui questi passaggi:
gcloud
Per impedire alle VM di accettare connessioni dalle chiavi SSH archiviate nei metadati del progetto tramite gcloud CLI, segui questi passaggi:
Esegui il comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME --metadata block-project-ssh-keys=TRUE
Sostituisci
VM_NAME
con il nome della VM per cui vuoi bloccare le chiavi SSH pubbliche a livello di progetto.REST
Per impedire alle VM di accettare connessioni dalle chiavi SSH archiviate nei metadati del progetto utilizzando l'API Compute Engine, segui questi passaggi:
Che cosa succede dopo?
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-07-05 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -