Connettiti alle VM Linux usando un bastion host

Questo documento descrive come connettersi a un'istanza di una macchina virtuale (VM) tramite il suo indirizzo IP interno, utilizzando una VM bastion host. I bastion host forniscono un punto di ingresso esterno in una rete Virtual Private Cloud (VPC) che contiene VM che non hanno indirizzi IP esterni. Quando usi un bastion host, connettiti prima al bastion host, quindi alla VM di destinazione.

La connessione a una VM tramite il suo indirizzo IP interno è utile se la VM non ha un indirizzo IP esterno. Se la VM ha un indirizzo IP esterno, connettiti alla VM utilizzando il suo indirizzo IP esterno. Se devi connetterti a una VM che non ha indirizzi IP esterni e non puoi utilizzare un bastion host, rivedi gli altri metodi elencati in Opzioni di connessione per le VM solo interne.

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.

crea una VM bastion host

Creare una VM Compute Engine all'interno della rete interna del cluster privato che funga da bastion host in grado di gestire il cluster.

Console

Crea una VM bastion host seguendo questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

    1. Specifica i seguenti dettagli della VM:
    • Nome: il nome della VM.
    • Tipo di macchina: un tipo di macchina. Scegli un tipo di macchina di piccole dimensioni, ad esempio e2-micro.
    • Disco di avvio Sistema operativo: qualsiasi sistema operativo Linux.
  2. Espandi la sezione Opzioni avanzate ed esegui le seguenti operazioni:

    1. Nella sezione Interfacce di rete, seleziona la stessa rete e la stessa subnet VPC della VM di destinazione.

    2. Per Indirizzo IPv4 esterno, seleziona Temporaneo.

  3. Per creare e avviare la VM, fai clic su Crea.

gcloud

Crea una VM bastion host utilizzando il comando gcloud compute instances create:

  1. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Crea la VM bastion host eseguendo questo comando:

    gcloud compute instances create VM_NAME \
      --zone=ZONE \
      --machine-type=e2-micro \
      --image-family=IMAGE_FAMILY \
      --image-project=IMAGE_PROJECT \
      --network-interface=subnet=SUBNET,address=""
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM.
    • ZONE: la zona per la VM.
    • IMAGE_FAMILY: una famiglia di immagini Linux.
    • IMAGE_PROJECT: il progetto immagine contenente l'immagine.
    • SUBNET: la stessa subnet VPC della VM di destinazione. Se utilizzi il VPC predefinito, SUBNET è default.

Connettiti alle VM

Per connetterti a una VM, completa i passaggi in una delle schede seguenti.

gcloud

Connettiti a una VM utilizzando SSH tramite un bastion host eseguendo il comando gcloud compute ssh:

  1. Connettiti alla VM bastion host eseguendo questo comando:

    gcloud compute ssh BASTION_NAME

    Sostituisci BASTION_NAME con il nome della VM bastion host.

  2. Dalla VM bastion host, connettiti alla VM principale tramite il suo indirizzo IP interno utilizzando il flag --internal-ip:

    gcloud compute ssh VM_NAME \
        --internal-ip

    Sostituisci VM_NAME con il nome della VM a cui vuoi connetterti.

Client OpenSSH

Connettiti a una VM tramite un bastion host da un client OpenSSH seguendo questi passaggi:

  1. Aggiungi una chiave SSH alla VM, se non l'hai ancora fatto.
  2. Nella console Google Cloud, vai alla pagina Istanze VM e trova l'indirizzo IP esterno della VM bastion host.

    Vai a Istanze VM

  3. Apri un terminale sulla workstation.
  4. Connettiti alla VM bastion host eseguendo questo comando:

    ssh -A -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

    Sostituisci quanto segue:

    • PATH_TO_PRIVATE_KEY: il percorso del file di chiave SSH privata che corrisponde alla chiave pubblica che hai aggiunto alla VM.
    • USERNAME: il tuo nome utente. Se gestisci le chiavi SSH nei metadati, il nome utente è quello che hai specificato quando hai creato la chiave SSH. Per gli account OS Login, il nome utente viene definito nel profilo Google. ad esempio cloudysanfrancisco_example_com o cloudysanfrancisco.
    • EXTERNAL_IP: l'indirizzo IP esterno della VM.
  5. Dalla VM bastion host, connettiti tramite l'indirizzo IP interno di una VM utilizzando questo comando:

    ssh USERNAME@INTERNAL_IP

    Sostituisci quanto segue:

    • USERNAME: il tuo nome utente. Se gestisci le chiavi SSH nei metadati, il nome utente è quello che hai specificato quando hai creato la chiave SSH. Per gli account OS Login, il nome utente viene definito nel profilo Google. ad esempio cloudysanfrancisco_example_com o cloudysanfrancisco.
    • INTERNAL_IP: l'indirizzo IP interno della VM.

App PuTTY

Connettiti a una VM tramite un bastion host usando PuTTY:

  1. Aggiungi una chiave SSH alla VM bastion host se non l'hai ancora fatto.
  2. Se sulla workstation non è già installata l'app PuTTY, scarica i file dei pacchetti PuTTY.
  3. Nella console Google Cloud, vai alla pagina Istanze VM e trova l'indirizzo IP interno della VM a cui vuoi connetterti.

    Vai a Istanze VM

  4. Apri l'app PuTTY. Si apre una finestra di configurazione della connessione.
  5. Nel campo Host Name, inserisci il nome utente associato alla chiave SSH e l'indirizzo IP esterno della VM a cui vuoi connetterti. Utilizza il formato seguente:

    USERNAME@EXTERNAL_IP

    Sostituisci quanto segue:

    • USERNAME: il tuo nome utente. Se gestisci le chiavi SSH nei metadati, il nome utente è quello che hai specificato quando hai creato la chiave SSH. Per gli account OS Login, il nome utente viene definito nel profilo Google. ad esempio cloudysanfrancisco_example_com o cloudysanfrancisco.
    • EXTERNAL_IP: l'indirizzo IP esterno della VM.
  6. Nel menu Categoria, vai a Connessione > SSH > Autorizzazione.
  7. Nel campo File di chiave privata per l'autenticazione, seleziona il file di chiave SSH privata corrispondente alla chiave pubblica che hai aggiunto alla VM.
  8. Nella sezione Parametri di autenticazione, seleziona Consenti inoltro agente.
  9. Fai clic su Apri per connetterti alla VM bastion host.
  10. Dalla VM bastion host, connettiti tramite l'indirizzo IP interno di una VM utilizzando questo comando:

    ssh USERNAME@INTERNAL_IP

    Sostituisci quanto segue:

    • USERNAME: il tuo nome utente. Se gestisci le chiavi SSH nei metadati, il nome utente è quello che hai specificato quando hai creato la chiave SSH. Per gli account OS Login, il nome utente viene definito nel profilo Google. ad esempio cloudysanfrancisco_example_com o cloudysanfrancisco.
    • INTERNAL_IP: l'indirizzo IP interno della VM.

Risoluzione dei problemi

Per trovare i metodi per diagnosticare e risolvere le connessioni SSH non riuscite, consulta Risoluzione dei problemi relativi a SSH.

Passaggi successivi