Prima di iniziare
- Per informazioni sulla gestione dell'accesso alle VM di Compute Engine, consulta Scelta di un metodo di accesso.
- Se non l'hai ancora fatto, crea una coppia di chiavi SSH.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Terraform
Per utilizzare gli esempi di Terraform in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
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.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Aggiunta di chiavi alle VM che utilizzano OS Login
Le VM che utilizzano OS Login accettano le chiavi SSH associate al tuo Account Google. Puoi associare una chiave SSH pubblica al tuo Account Google utilizzando gcloud CLI o l'API OS Login. Se sei un amministratore della tua organizzazione, puoi aggiungere chiavi SSH agli account utente utilizzando l'API Directory.
Quando aggiungi chiavi SSH al tuo Account Google, Compute Engine genera un
nome utente combinando il nome utente e il dominio dell'email associata
al tuo Account Google. Ad esempio, se il tuo indirizzo email è
cloudysanfrancisco@gmail.com, il tuo nome utente è cloudysanfrancisco_gmail_com.
Se aggiungi una chiave SSH in un progetto esterno alla tua organizzazione, al
nome utente viene anteposto ext_, ad esempio
ext_cloudysanfrancisco_gmail_com. L'amministratore dell'organizzazione può
personalizzare il tuo nome utente utilizzando
l'API Directory. Se
hai già configurato un nome utente, Compute Engine lo
utilizza quando aggiungi le chiavi SSH.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Per aggiungere una chiave SSH pubblica al tuo account, utilizza il comando
gcloud compute os-login ssh-keys add:gcloud compute os-login ssh-keys add \ --key-file=KEY_FILE_PATH \ --project=PROJECT \ --ttl=EXPIRE_TIME
Sostituisci quanto segue:
KEY_FILE_PATH: il percorso della chiave pubblica SSH sulla workstation. La chiave deve utilizzare il formatopublic-openssh.PROJECT: (facoltativo) un progetto in cui intendi utilizzare la tua chiave SSH. Specifica questo campo per utilizzare la chiave SSH in un progetto al di fuori della tua organizzazione o se non fai parte di un'organizzazione Cloud Identity.EXPIRE_TIME: (facoltativo) la data di scadenza della chiave SSH.Ad esempio, se specifichi
30m, la chiave SSH scade dopo 30 minuti.Questo flag utilizza le seguenti unità:
sper i secondimper i minutihper le oredper i giorni
Terraform
Per aggiungere una chiave SSH pubblica al tuo account, utilizza la risorsa google_client_openid_userinfo insieme alla risorsa google_os_login_ssh_public_key.
REST
Per aggiungere una chiave SSH pubblica al tuo account, utilizza il metodo users.importSshPublicKey dell'API OS Login:
POST https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL:importSshPublicKey
{
"key": "SSH_KEY",
"expirationTimeUsec": "EXPIRATION_TIMESTAMP"
}
Sostituisci quanto segue:
ACCOUNT_EMAIL: inserisci l'indirizzo email associato al tuo accountSSH_KEY: la chiave pubblica che vuoi aggiungere all'accountEXPIRATION_TIMESTAMP: la data e l'ora di scadenza della chiave in microsecondi dall'epoca (1 secondo = 106 microsecondi)
Aggiungi chiavi SSH alle VM che utilizzano chiavi SSH basate su metadati
Le VM che non utilizzano OS Login memorizzano le chiavi SSH nei metadati del progetto e delle istanze di Compute Engine. Se OS Login è abilitato per una VM, l'agente ospite della VM ignora le chiavi archiviate nei metadati.
Puoi utilizzare le chiavi SSH archiviate nei metadati del progetto per accedere a tutte le VM di un progetto. Puoi utilizzare le chiavi SSH archiviate nei metadati delle istanze per accedere alle singole VM.
Compute Engine non rimuove automaticamente le chiavi SSH dai metadati quando scadono, ma le chiavi scadute non possono essere utilizzate per stabilire nuove connessioni alle VM. Se vuoi rimuovere le chiavi scadute dai metadati, consulta Rimuovi le chiavi SSH dalle VM che utilizzano chiavi basate su metadati.
Puoi aggiungere una chiave SSH pubblica ai metadati del progetto o dell'istanza VM utilizzando la console Google Cloud , gcloud CLI o REST. Non puoi impostare valori dei metadati di zona per le chiavi SSH.
Aggiungi le chiavi SSH ai metadati del progetto
Puoi aggiungere una chiave SSH pubblica ai metadati di un progetto per accedere a tutte le VM di un progetto, tranne alle VM che bloccano le chiavi SSH a livello di progetto. Per saperne di più sul blocco delle chiavi SSH a livello di progetto, consulta Blocco delle chiavi SSH dalle VM che utilizzano chiavi SSH basate su metadati.
Console
Per aggiungere una chiave SSH pubblica ai metadati del progetto utilizzando la consoleGoogle Cloud , segui questi passaggi:
Nella console Google Cloud , vai alla pagina Metadati
Fai clic sulla scheda Chiavi SSH.
Fai clic su Modifica.
Fai clic su Aggiungi elemento.
Nel campo Chiave SSH visualizzato, aggiungi la tua chiave SSH pubblica. La chiave deve essere in uno dei seguenti formati:
- Formato per una chiave senza scadenza:
KEY_VALUE USERNAME
- Formato per una chiave con scadenza:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Sostituisci quanto segue:
KEY_VALUE: il valore della chiave pubblica SSH.USERNAME: il tuo nome utente. Ad esempio,cloudysanfranciscoocloudysanfrancisco_gmail_com.Per le VM Linux,
USERNAMEnon può essereroot, a meno che non configuri la VM in modo da consentire l'accesso root. Per ulteriori informazioni, consulta Connessione alle VM Linux come utente root.Per le VM Windows che utilizzano Active Directory (AD), bisogna anteporre al nome utente il dominio AD nel formato
DOMAIN\. Ad esempio, l'utentecloudysanfranciscoall'interno dell'ADad.example.comha unUSERNAMEsimile aexample\cloudysanfrancisco.EXPIRE_TIME: la data e l'ora di scadenza della chiave in formato ISO 8601. Ad esempio:2021-12-04T20:12:00+0000.
- Formato per una chiave senza scadenza:
Fai clic su Salva.
gcloud
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Se esistono chiavi SSH nei metadati del progetto, devi aggiungerle di nuovo ai metadati del progetto ogni volta che aggiungi una nuova chiave SSH utilizzando gcloud CLI. Se non aggiungi di nuovo le chiavi esistenti, queste verranno eliminate al momento dell'aggiunta di una nuova chiave.
Per aggiungere una chiave SSH pubblica ai metadati del progetto utilizzando gcloud CLI, procedi nel seguente modo:
Se il progetto ha già chiavi SSH pubbliche a livello di progetto, recuperale dai metadati e aggiungile a un nuovo file:
Esegui il comando
gcloud compute project-info describeper recuperare le chiavi SSH per il progetto:gcloud compute project-info describe \ --format="value(commonInstanceMetadata[items][ssh-keys])"
L'output è simile al seguente:
username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...
Copia il valore dei metadati
ssh-keys.Crea e apri un nuovo file di testo sulla tua workstation.
Nel file, incolla l'elenco di chiavi appena copiato.
Aggiungi la nuova chiave alla fine dell'elenco in uno dei seguenti formati:
- Formato per una chiave senza scadenza:
USERNAME:KEY_VALUE
- Formato per una chiave con scadenza:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Sostituisci quanto segue:
KEY_VALUE: il valore della chiave pubblica SSH.USERNAME: il tuo nome utente. Ad esempio,cloudysanfranciscoocloudysanfrancisco_gmail_com.Per le VM Linux,
USERNAMEnon può essereroot, a meno che non configuri la VM in modo da consentire l'accesso root. Per ulteriori informazioni, consulta Connessione alle istanze come utente root.Per le VM Windows che utilizzano Active Directory (AD), bisogna anteporre al nome utente il dominio AD nel formato
DOMAIN\. Ad esempio, l'utentecloudysanfranciscoall'interno dell'ADad.example.comha unUSERNAMEsimile aexample\cloudysanfrancisco.EXPIRE_TIME: la data e l'ora di scadenza della chiave in formato ISO 8601. Ad esempio:2021-12-04T20:12:00+0000.
- Formato per una chiave senza scadenza:
Salva e chiudi il file.
Esegui il comando
gcloud compute project-info add-metadataper impostare il valoressh-keysa livello di progetto:gcloud compute project-info add-metadata --metadata-from-file=ssh-keys=KEY_FILE
Sostituisci
KEY_FILEcon una delle seguenti opzioni:- il percorso del file creato nel passaggio precedente, se nel progetto erano presenti chiavi SSH esistenti;
- il percorso del file della nuova chiave SSH pubblica, se nel progetto non erano presenti chiavi SSH esistenti.
Terraform
Per aggiungere una chiave SSH pubblica ai metadati del progetto, utilizza la risorsa google_compute_project_metadata.
REST
Se esistono chiavi SSH nei metadati del progetto, devi aggiungerle di nuovo ai metadati del progetto ogni volta che aggiungi una nuova chiave SSH utilizzando l'API Compute Engine. Se non aggiungi di nuovo le chiavi esistenti, queste verranno eliminate al momento dell'aggiunta di una nuova chiave.
Per aggiungere una chiave SSH pubblica ai metadati del progetto utilizzando l'API Compute Engine, procedi nel seguente modo:
Ottieni i valori
fingerprintessh-keysdai metadati utilizzando il metodoprojects.get.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
Sostituisci
PROJECT_IDcon 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"}" } ] ...Aggiungi il nuovo valore
ssh-keysutilizzando il metodoprojects.setCommonInstanceMetadata.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY" } ] "fingerprint": "FINGERPRINT" }Sostituisci quanto segue:
PROJECT_ID: il tuo ID progettoEXISTING_SSH_KEYS: il valore della chiavessh-keysottenuta dalla risposta della richiestaprojects.getFINGERPRINT: il valore difingerprintdalla risposta della richiestaprojects.getNEW_SSH_KEY: la nuova chiave SSH, in uno dei seguenti formati:- Formato per una chiave senza scadenza:
USERNAME:KEY_VALUE
- Formato per una chiave con scadenza:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Sostituisci quanto segue:
KEY_VALUE: il valore della chiave pubblica SSH.USERNAME: il tuo nome utente. Ad esempio,cloudysanfranciscoocloudysanfrancisco_gmail_com.Per le VM Linux,
USERNAMEnon può essereroot, a meno che non configuri la VM in modo da consentire l'accesso root. Per ulteriori informazioni, consulta Connessione alle istanze come utente root.Per le VM Windows che utilizzano Active Directory (AD), bisogna anteporre al nome utente il dominio AD nel formato
DOMAIN\. Ad esempio, l'utentecloudysanfranciscoall'interno dell'ADad.example.comha unUSERNAMEsimile aexample\cloudysanfrancisco.EXPIRE_TIME: la data e l'ora di scadenza della chiave in formato ISO 8601. Ad esempio:2021-12-04T20:12:00+0000.
- Formato per una chiave senza scadenza:
Aggiungi le chiavi SSH ai metadati dell'istanza
Puoi aggiungere una chiave SSH pubblica ai metadati dell'istanza quando crei una VM o dopo aver creato una VM.
Aggiungi le chiavi SSH ai metadati dell'istanza durante la creazione della VM
Puoi aggiungere chiavi SSH ai metadati dell'istanza durante la creazione della VM utilizzando la consoleGoogle Cloud , gcloud CLI o l'API Compute Engine.
Console
Per creare un'istanza e aggiungere contemporaneamente una chiave SSH pubblica ai metadati dell'istanza utilizzando la console Google Cloud , procedi nel seguente modo:
Nella console Google Cloud , vai alla pagina Crea un'istanza.
Per aggiungere una chiave SSH pubblica ai metadati dell'istanza:
Nel menu di navigazione, fai clic su Sicurezza.
Espandi la sezione Gestisci accesso.
Per disattivare OS Login, deseleziona la casella di controllo Controlla l'accesso alle VM tramite autorizzazioni IAM.
Se vuoi consentire alle chiavi SSH pubbliche nei metadati del progetto di accedere all'istanza, deseleziona la casella di controllo Blocca chiavi SSH a livello di progetto.
Nella sezione Aggiungi chiavi SSH generate manualmente, fai clic su Aggiungi elemento.
Aggiungi la chiave pubblica nella casella di testo. La chiave deve essere in uno dei seguenti formati:
- Formato per una chiave senza scadenza:
KEY_VALUE USERNAME
- Formato per una chiave con scadenza:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Sostituisci quanto segue:
KEY_VALUE: il valore della chiave pubblica SSH.USERNAME: il tuo nome utente. Ad esempio,cloudysanfranciscoocloudysanfrancisco_gmail_com.Per le VM Linux,
USERNAMEnon può essereroot, a meno che non configuri la VM in modo da consentire l'accesso root. Per ulteriori informazioni, consulta Connessione alle VM Linux come utente root.Per le VM Windows che utilizzano Active Directory (AD), bisogna anteporre al nome utente il dominio AD nel formato
DOMAIN\. Ad esempio, l'utentecloudysanfranciscoall'interno dell'ADad.example.comha unUSERNAMEsimile aexample\cloudysanfrancisco.EXPIRE_TIME: la data e l'ora di scadenza della chiave in formato ISO 8601. Ad esempio:2021-12-04T20:12:00+0000.
- Formato per una chiave senza scadenza:
(Facoltativo) Specifica altre opzioni di configurazione. Per ulteriori informazioni, consulta Opzioni di configurazione durante la creazione dell'istanza.
Per creare e avviare l'istanza, fai clic su Crea.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Per creare contemporaneamente una VM e aggiungere una chiave SSH pubblica ai metadati dell'istanza utilizzando gcloud CLI, utilizza il comando
gcloud compute instances create:gcloud compute instances create VM_NAME \ --metadata=ssh-keys=PUBLIC_KEY
Sostituisci quanto segue:
VM_NAME: il nome della nuova VMPUBLIC_KEY: la tua chiave pubblica SSH, in uno dei seguenti formati:- Formato per una chiave senza scadenza:
USERNAME:KEY_VALUE
- Formato per una chiave con scadenza:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Sostituisci quanto segue:
KEY_VALUE: il valore della chiave pubblica SSH.USERNAME: il tuo nome utente. Ad esempio,cloudysanfranciscoocloudysanfrancisco_gmail_com.Per le VM Linux,
USERNAMEnon può essereroot, a meno che non configuri la VM in modo da consentire l'accesso root. Per ulteriori informazioni, consulta Connessione alle istanze come utente root.Per le VM Windows che utilizzano Active Directory (AD), bisogna anteporre al nome utente il dominio AD nel formato
DOMAIN\. Ad esempio, l'utentecloudysanfranciscoall'interno dell'ADad.example.comha unUSERNAMEsimile aexample\cloudysanfrancisco.EXPIRE_TIME: la data e l'ora di scadenza della chiave in formato ISO 8601. Ad esempio:2021-12-04T20:12:00+0000.
- Formato per una chiave senza scadenza:
Puoi aggiungere più chiavi SSH utilizzando il flag
--metadata-from-file=ssh-keys=FILE_PATH. Nel file, aggiungi un elenco di nomi utente e chiavi SSH pubbliche in uno dei formati precedenti.
Terraform
Per aggiungere una chiave SSH pubblica ai metadati dell'istanza, utilizza la risorsa google_compute_instance.
REST
Per creare una VM e aggiungere una chiave pubblica SSH ai metadati dell'istanza contemporaneamente
utilizzando Compute Engine, crea una richiesta POST al
metodo instances.insert:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Sostituisci quanto segue:
PROJECT_ID: l'ID progettoZONE: la zona della VM
Nel corpo della richiesta, fornisci i nomi utente e le chiavi SSH pubbliche nella
proprietà items:
...
{
"items": [
{
"key": "ssh-keys",
"value": "PUBLIC_KEY"
}
]
}
...
Sostituisci PUBLIC_KEY con la tua chiave pubblica in uno
tra i seguenti formati:
- Formato per una chiave senza scadenza:
USERNAME:KEY_VALUE
- Formato per una chiave con scadenza:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Sostituisci quanto segue:
KEY_VALUE: il valore della chiave pubblica SSH.USERNAME: il tuo nome utente. Ad esempio,cloudysanfranciscoocloudysanfrancisco_gmail_com.Per le VM Linux,
USERNAMEnon può essereroot, a meno che non configuri la VM in modo da consentire l'accesso root. Per ulteriori informazioni, consulta Connessione alle istanze come utente root.Per le VM Windows che utilizzano Active Directory (AD), bisogna anteporre al nome utente il dominio AD nel formato
DOMAIN\. Ad esempio, l'utentecloudysanfranciscoall'interno dell'ADad.example.comha unUSERNAMEsimile aexample\cloudysanfrancisco.EXPIRE_TIME: la data e l'ora di scadenza della chiave in formato ISO 8601. Ad esempio:2021-12-04T20:12:00+0000.
Puoi aggiungere più chiavi SSH inserendo \n tra le chiavi.
Aggiungi le chiavi SSH ai metadati dell'istanza dopo la creazione della VM
Puoi aggiungere chiavi SSH ai metadati dell'istanza dopo la creazione della VM utilizzando la consoleGoogle Cloud , gcloud CLI o l'API Compute Engine.
Console
Per aggiungere una chiave SSH pubblica ai metadati dell'istanza utilizzando la consoleGoogle Cloud , segui questi passaggi:
Nella console Google Cloud , vai alla pagina Istanze VM.
Fai clic sul nome della VM per cui vuoi aggiungere una chiave SSH.
Fai clic su Modifica.
In Chiavi SSH, fai clic su Aggiungi elemento.
Aggiungi la chiave pubblica nella casella di testo. La chiave deve essere in uno dei seguenti formati:
- Formato per una chiave senza scadenza:
KEY_VALUE USERNAME
- Formato per una chiave con scadenza:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Sostituisci quanto segue:
KEY_VALUE: il valore della chiave pubblica SSH.USERNAME: il tuo nome utente. Ad esempio,cloudysanfranciscoocloudysanfrancisco_gmail_com.Per le VM Linux,
USERNAMEnon può essereroot, a meno che non configuri la VM in modo da consentire l'accesso root. Per ulteriori informazioni, consulta Connessione alle VM Linux come utente root.Per le VM Windows che utilizzano Active Directory (AD), bisogna anteporre al nome utente il dominio AD nel formato
DOMAIN\. Ad esempio, l'utentecloudysanfranciscoall'interno dell'ADad.example.comha unUSERNAMEsimile aexample\cloudysanfrancisco.EXPIRE_TIME: la data e l'ora di scadenza della chiave in formato ISO 8601. Ad esempio:2021-12-04T20:12:00+0000.
- Formato per una chiave senza scadenza:
Fai clic su Salva.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Se esistono chiavi SSH nei metadati dell'istanza, devi aggiungerle di nuovo ai metadati dell'istanza ogni volta che aggiungi una nuova chiave SSH utilizzando gcloud CLI. Se non aggiungi di nuovo le chiavi esistenti, queste verranno eliminate al momento dell'aggiunta di una nuova chiave.
Per aggiungere una chiave SSH pubblica ai metadati del progetto utilizzando gcloud CLI, procedi nel seguente modo:
Se la VM dispone già di chiavi SSH pubbliche a livello di istanza, recuperale dai metadati e aggiungile a un nuovo file:
Esegui il comando
gcloud compute instances describeper recuperare i metadati della 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-keysvalue: |- 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 tua workstation.
Nel file, incolla l'elenco di chiavi appena copiato.
Aggiungi la nuova chiave alla fine dell'elenco in uno dei seguenti formati:
- Formato per una chiave senza scadenza:
USERNAME:KEY_VALUE
- Formato per una chiave con scadenza:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Sostituisci quanto segue:
KEY_VALUE: il valore della chiave pubblica SSH.USERNAME: il tuo nome utente. Ad esempio,cloudysanfranciscoocloudysanfrancisco_gmail_com.Per le VM Linux,
USERNAMEnon può essereroot, a meno che non configuri la VM in modo da consentire l'accesso root. Per ulteriori informazioni, consulta Connessione alle istanze come utente root.Per le VM Windows che utilizzano Active Directory (AD), bisogna anteporre al nome utente il dominio AD nel formato
DOMAIN\. Ad esempio, l'utentecloudysanfranciscoall'interno dell'ADad.example.comha unUSERNAMEsimile aexample\cloudysanfrancisco.EXPIRE_TIME: la data e l'ora di scadenza della chiave in formato ISO 8601. Ad esempio:2021-12-04T20:12:00+0000.
- Salva e chiudi il file.
Esegui il comando
gcloud compute instances add-metadataper impostare il valoressh-keys:gcloud compute instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
Sostituisci quanto segue:
VM_NAME: la VM per cui vuoi aggiungere la chiave SSHKEY_FILEcon uno dei seguenti elementi:- il percorso del file creato nel passaggio precedente, se nella VM erano presenti chiavi SSH esistenti;
- il percorso del file della nuova chiave SSH pubblica, se nella VM non erano presenti chiavi SSH esistenti.
REST
Se esistono chiavi SSH nei metadati dell'istanza, devi aggiungerle di nuovo ai metadati dell'istanza ogni volta che aggiungi una nuova chiave SSH utilizzando l'API Compute Engine. Se non aggiungi di nuovo le chiavi esistenti, queste verranno eliminate al momento dell'aggiunta di una nuova chiave.
Per aggiungere una chiave SSH pubblica ai metadati dell'istanza utilizzando l'API Compute Engine, procedi nel seguente modo:
Ottieni i valori
fingerprintessh-keysdai metadati utilizzando il metodoinstances.get.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 a cui aggiungere 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"}" } ] ...Aggiungi il nuovo valore
ssh-keysutilizzando il metodoinstances.setMetadata.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY" } ] "fingerprint": "FINGERPRINT" }Sostituisci quanto segue:
PROJECT_ID: il tuo ID progettoEXISTING_SSH_KEYS: il valore della chiavessh-keysdalla risposta della richiestainstances.getFINGERPRINT: ilfingerprintdalla risposta della richiestaprojects.getNEW_SSH_KEY: la nuova chiave SSH, in uno dei seguenti formati:- Formato per una chiave senza scadenza:
USERNAME:KEY_VALUE
- Formato per una chiave con scadenza:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Sostituisci quanto segue:
KEY_VALUE: il valore della chiave pubblica SSH.USERNAME: il tuo nome utente. Ad esempio,cloudysanfranciscoocloudysanfrancisco_gmail_com.Per le VM Linux,
USERNAMEnon può essereroot, a meno che non configuri la VM in modo da consentire l'accesso root. Per ulteriori informazioni, consulta Connessione alle istanze come utente root.Per le VM Windows che utilizzano Active Directory (AD), bisogna anteporre al nome utente il dominio AD nel formato
DOMAIN\. Ad esempio, l'utentecloudysanfranciscoall'interno dell'ADad.example.comha unUSERNAMEsimile aexample\cloudysanfrancisco.EXPIRE_TIME: la data e l'ora di scadenza della chiave in formato ISO 8601. Ad esempio:2021-12-04T20:12:00+0000.
- Formato per una chiave senza scadenza:
Passaggi successivi
- Scopri come connetterti alle VM.
- Scopri come gestire l'accesso alle VM.
- Scopri come trasferire file alle VM.
- Scopri come funzionano le connessioni SSH alle VM Linux su Compute Engine.