Questo documento descrive come connettersi a un'istanza di macchina virtuale (VM) tramite il relativo indirizzo IP interno utilizzando l'inoltro TCP di Identity-Aware Proxy (IAP).
L'inoltro TCP di IAP consente di stabilire un tunnel criptato tramite cui puoi inoltrare le connessioni SSH alle VM. Quando ti connetti a una VM che utilizza IAP, IAP aggrega la connessione SSH all'interno di HTTPS prima di inoltrarla alla VM. Quindi, IAP controlla se disponi delle autorizzazioni IAM richieste e, in caso affermativo, concede l'accesso alla VM.
Se devi connetterti a una VM senza indirizzi IP esterni e non puoi utilizzare IAP, esamina gli altri metodi elencati in Opzioni di connessione per le VM solo interne.
Prima di iniziare
- Crea una regola firewall per abilitare le connessioni da IAP.
-
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 al modo in cui prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API Google Cloud , non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud init
-
- Imposta una regione e una zona predefinite.
Sistemi operativi supportati
Questi metodi di connessione sono supportati per tutte le immagini Linux pubbliche disponibili su Compute Engine. Per le immagini Fedora CoreOS, devi configurare l'accesso SSH prima di poter utilizzare questi metodi.
Connettiti alle VM
Per connetterti a una VM, completa i passaggi in una delle seguenti schede.
Console
Esegui il tunneling delle connessioni SSH tramite l'indirizzo IP interno di una VM utilizzando SSH nel browser nel seguente modo:
- Nella console Google Cloud , vai alla pagina Istanze VM.
- Nell'elenco delle istanze della macchina virtuale, fai clic su SSH nella riga dell'istanza a cui vuoi connetterti.
gcloud
Esegui il tunneling delle connessioni SSH tramite l'indirizzo IP interno di una VM utilizzando il
comando
gcloud compute ssh con il
flag --tunnel-through-iap:
Connettiti alla VM eseguendo il seguente comando:
gcloud compute ssh INSTANCE_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --tunnel-through-iapSostituisci quanto segue:
INSTANCE_NAME: il nome della VM a cui vuoi connetterti.PROJECT_ID: l'ID del progetto che contiene la VM.ZONE: il nome della zona in cui si trova la VM.
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.
IAP Desktop
Per connetterti a una VM utilizzando IAP Desktop, segui questi passaggi:
-
Se non l'hai ancora fatto, Installa IAP Desktop sulla tua workstation.
-
Apri IAP Desktop. Viene visualizzata la finestra Aggiungi progetti.
-
Quando richiesto, accedi utilizzando l'Account Google che ha accesso al progetto con le VM a cui vuoi connetterti.
-
Nella finestra Aggiungi progetti, inserisci l'ID progetto o il nome del progetto che contiene le VM a cui vuoi connetterti.
-
Nella finestra Project Explorer, fai di nuovo clic con il tasto destro del mouse sul nome della VM e seleziona Connetti per connetterti alla VM.
Client OpenSSH
Connettiti a una VM senza indirizzo IP esterno utilizzando SSH tramite un tunnel IAP. Puoi scrivere il tuo file di configurazione SSH (~/.ssh/config) in modo che strumenti come VS Code o un client OpenSSH possano connettersi direttamente.
Genera e propaga le chiavi SSH connettendoti alla VM almeno una volta eseguendo il comando
gcloud compute ssh:gcloud compute ssh INSTANCE_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --tunnel-through-iapSostituisci quanto segue:
INSTANCE_NAME: il nome della VM a cui vuoi connetterti.PROJECT_ID: l'ID del progetto che contiene la VM.ZONE: la zona in cui si trova la VM.
Una volta stabilita la connessione, esci dalla sessione SSH.
Apri o crea il file di configurazione SSH sulla tua workstation locale. Questo file si trova in genere in
~/.ssh/configsu Linux e macOS o in%USERPROFILE%\.ssh\configsu Windows.Aggiungi una voce di configurazione per la tua VM aggiungendo il seguente blocco al file di configurazione SSH:
Host INSTANCE_NAME HostName INSTANCE_NAME IdentityFile PATH_TO_PRIVATE_KEY ProxyCommand gcloud compute start-iap-tunnel %h %p --listen-on-stdin --project=PROJECT_ID --zone=ZONE --verbosity=warning User USERNAMESostituisci quanto segue:
INSTANCE_NAME: il nome della VM a cui vuoi connetterti.PATH_TO_PRIVATE_KEY: il percorso del file della chiave privata, in genere~/.ssh/google_compute_engine.PROJECT_ID: l'ID del progetto che contiene la VM.ZONE: la zona in cui si trova la VM.USERNAME: il nome utente sulla VM, ad esempio il tuo nome utente OS Login Google Cloud o il nome utente dei metadati.
Connettiti alla VM dal terminale locale o dal client SSH eseguendo il seguente comando:
ssh INSTANCE_NAME
App PuTTY
Per eseguire il tunneling delle connessioni SSH tramite l'indirizzo IP interno di una VM utilizzando PuTTY, segui questi passaggi:
- Se non l'hai ancora fatto, aggiungi una chiave SSH alla VM.
- Se l'app PuTTY non è già installata sulla tua workstation, scarica i file del pacchetto PuTTY.
Nella console Google Cloud , vai alla pagina Istanze VM e trova il nome della VM a cui vuoi connetterti.
- Apri l'app PuTTY. Si apre una finestra di configurazione della connessione.
Nel campo Nome host (o indirizzo IP), inserisci il nome utente associato alla chiave SSH e il nome della VM a cui vuoi connetterti. Utilizza il formato seguente:
USERNAME@INSTANCE_NAME
Sostituisci quanto segue:
USERNAME: il nome utente è quello specificato quando hai creato la chiave SSH.-
INSTANCE_NAME: il nome della VM.
- Nel menu Category (Categoria), vai a Connection (Connessione) > SSH > Auth (Autenticazione) > Credentials (Credenziali) (o Connection (Connessione) > SSH > Auth (Autenticazione) nelle versioni di PuTTY precedenti alla 0.78).
- Nel campo File chiave privata per autenticazione, fai clic su Sfoglia e seleziona il file della chiave SSH privata (
.ppk) corrispondente alla chiave pubblica che hai aggiunto alla VM. - Nel menu Category (Categoria), vai a Connection (Connessione) > Proxy.
- Nella sezione Tipo di proxy, seleziona Locale.
Nel campo Comando Telnet o comando proxy locale, inserisci il seguente comando:
gcloud.cmd compute start-iap-tunnel INSTANCE_NAME PORT_NUMBER --listen-on-stdin --project=PROJECT_ID --zone=ZONE
Sostituisci quanto segue:
INSTANCE_NAME: il nome della VM a cui vuoi connetterti.PORT_NUMBER: la porta su cui viene eseguito il daemonsshd. Il valorePORT_NUMBERpredefinito è22.PROJECT_ID: il progetto che ospita la VM a cui vuoi connetterti.ZONE: la zona in cui si trova la VM.
- Fai clic su Apri per connetterti alla VM.
Risoluzione dei problemi
Per trovare metodi per diagnosticare e risolvere le connessioni SSH non riuscite, consulta Risoluzione dei problemi relativi a SSH.
Passaggi successivi
- Scopri come trasferire file alle VM.
- Scopri come funzionano le connessioni SSH alle VM Linux su Compute Engine.