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 alla modalità di utilizzo degli esempi in questa pagina:
Console
Quando utilizzi la Google Cloud console per accedere a Google Cloud servizi e API, 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 Google Cloud console, vai alla pagina Istanze VM.
- Nell'elenco delle istanze della macchina virtuale, fai clic su SSH nella riga di l'istanza a cui vuoi connetterti.
gcloud
Esegui il tunneling delle connessioni SSH tramite l'indirizzo IP interno di una VM utilizzando il
gcloud compute ssh comando con il
--tunnel-through-iap flag:
Connettiti alla VM eseguendo il seguente comando:
gcloud compute ssh VM-NAME \ --tunnel-through-iap
Nella Google Cloud console, attiva Cloud Shell.
Nella parte inferiore della Google Cloud console 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à inclusa e installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Sostituisci VM_NAME con il nome della VM a cui vuoi connetterti.
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 il client OpenSSH possano connettersi senza problemi.
Genera e propaga le chiavi SSH connettendoti alla VM almeno una volta eseguendo il
gcloud compute sshcomando:gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME --tunnel-through-iap
Verifica che la connessione sia riuscita, quindi esci.
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 VM aggiungendo il seguente blocco al file di configurazione SSH:
Host VM_NAME HostName VM_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:
VM_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 nome utente di OS Login di Google Cloud o il nome utente dei metadati).
Connettiti alla VM dal terminale locale o dal client SSH eseguendo il comando seguente:
ssh VM_NAME
App PuTTY
Esegui il tunnelling delle connessioni SSH tramite l'indirizzo IP interno di una VM utilizzando PuTTY nel seguente modo:
- 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
Host Name, inserisci il nome utente associato alla chiave SSH e il nome della VM a cui vuoi connetterti. Utilizza il formato seguente:USERNAME@VM_NAME
Sostituisci quanto segue:
USERNAME: il nome utente è quello specificato quando hai creato la chiave SSH.-
NAME: il nome della VM.
- Nel menu Category (Categoria), vai a Connection (Connessione) > SSH > Auth (Autenticazione).
- Nel campo File chiave privata per autenticazione, seleziona il file della chiave SSH privata corrispondente alla chiave pubblica che hai aggiunto alla VM.
- Nel menu Categoria, vai a 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 VM_NAME PORT_NUMBER --listen-on-stdin --project=PROJECT_ID --zone=ZONE
Sostituisci quanto segue:
VM_NAME: il nome della VM a cui vuoi connetterti.PORT_NUMBER: la porta su cui viene eseguito il daemon sshd. 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.