Verbindung zu Linux-VMs über einen Bastion Host herstellen


In diesem Dokument wird beschrieben, wie Sie mithilfe einer Bastion Host-VM über ihre interne IP-Adresse eine Verbindung zu einer VM-Instanz herstellen. Bastion Hosts bieten einen externen Einstiegspunkt in ein VPC-Netzwerk (Virtual Private Cloud), das VMs ohne externe IP-Adressen enthält. Wenn Sie einen Bastion Host verwenden, stellen Sie zuerst eine Verbindung zum Bastion Host und dann zur Verbindung mit der Ziel-VM her.

Die Verbindung zu einer VM über ihre interne IP-Adresse ist nützlich, wenn die VM keine externe IP-Adresse hat. Hat die VM eine externe IP-Adresse, stellen Sie über ihre externe IP-Adresse eine Verbindung zur VM her. Wenn Sie eine Verbindung zu einer VM herstellen müssen, die keine externen IP-Adressen hat und Sie keinen Bastion Host verwenden können, lesen Sie die anderen Methoden unter Verbindungsoptionen für interne VMs.

Unterstützte Betriebssysteme

Diese Verbindungsmethoden werden für alle öffentlichen Linux-Images unterstützt, die in Compute Engine verfügbar sind. Für Fedora CoreOS-Images müssen Sie den SSH-Zugriff einrichten, bevor Sie diese Methoden verwenden können.

Bastion-Host-VM erstellen

Erstellen Sie eine Compute Engine-VM im internen Netzwerk des privaten Clusters, die als Bastion Host fungiert und den Cluster verwalten kann.

Console

So erstellen Sie eine Bastion-Host-VM:

  1. Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.

    Zur Seite „Instanz erstellen“

    1. Geben Sie die folgenden VM-Details an:
    • Name: Der Name Ihrer VM.
    • Maschinentyp: Ein Maschinentyp. Wählen Sie einen kleinen Maschinentyp wie e2-micro aus.
    • Bootlaufwerk Betriebssystem: Ein beliebiges Linux-Betriebssystem.
  2. Maximieren Sie den Abschnitt Erweiterte Optionen und tun Sie Folgendes:

    1. Wählen Sie im Abschnitt Netzwerkschnittstellen das VPC-Netzwerk und das Subnetz aus, in dem sich auch die Ziel-VM befindet.

    2. Wählen Sie für externe IPv4-Adresse die Option Sitzungsspezifisch aus.

  3. Klicken Sie zum Erstellen und Starten der VM auf Erstellen.

gcloud

Erstellen Sie mit dem Befehl gcloud compute instances create eine Bastion Host-VM:

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Erstellen Sie die Bastion Host-VM mit folgendem Befehl:

    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=""
    

    Dabei gilt:

    • VM_NAME ist der Name der VM.
    • ZONE ist die Zone für die VM.
    • IMAGE_FAMILY: eine Linux-Image-Familie.
    • IMAGE_PROJECT ist das Image-Projekt, das das Image enthält.
    • SUBNET: dasselbe VPC-Subnetz wie die Ziel-VM. Wenn Sie die Standard-VPC verwenden, ist SUBNET default.

Verbindung zu VMs herstellen

Führen Sie die Schritte auf einem der folgenden Tabs aus, um eine Verbindung zu einer VM herzustellen.

gcloud

Stellen Sie mit SSH über einen Bastion Host eine Verbindung zu einer VM her. Führen Sie dazu den Befehl gcloud compute ssh aus:

  1. Stellen Sie mit folgendem Befehl eine Verbindung zur als Bastion Host fungierenden VM her:

    gcloud compute ssh BASTION_NAME

    Ersetzen Sie BASTION_NAME durch den Namen der Bastion Host-VM.

  2. Stellen Sie über die Bastion Host-VM eine Verbindung zur Haupt-VM über die interne IP-Adresse mit dem Flag --internal-ip her:

    gcloud compute ssh VM_NAME \
        --internal-ip

    Ersetzen Sie VM_NAME durch den Namen der VM, zu der Sie eine Verbindung herstellen möchten.

OpenSSH-Clients

So stellen Sie über einen Bastion Host eine Verbindung zu einer VM her, von einem OpenSSH-Client aus:

  1. Fügen Sie der VM einen SSH-Schlüssel hinzu, falls noch nicht geschehen.
  2. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf und suchen Sie die externe IP-Adresse der Bastion Host-VM.

    Zu Seite „VM-Instanzen“

  3. Öffnen Sie ein Terminal in der Workstation.
  4. Stellen Sie mit folgendem Befehl eine Verbindung zur als Bastion Host fungierenden VM her:

    ssh -A -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

    Dabei gilt:

    • PATH_TO_PRIVATE_KEY: Der Pfad zur privaten SSH-Schlüsseldatei, die dem öffentlichen Schlüssel entspricht, den Sie der VM hinzugefügt haben.
    • USERNAME: Ihr Nutzername. Wenn Sie Ihre SSH-Schlüssel in Metadaten verwalten, muss dies der Nutzername sein, den Sie beim Erstellen des SSH-Schlüssels angegeben haben. Für OS Login-Konten wird der Nutzername in Ihrem Google-Profil festgelegt. Beispiel cloudysanfrancisco_example_com oder cloudysanfrancisco.
    • EXTERNAL_IP: Externe IP-Adresse der VM
  5. Stellen Sie über die Bastion Host-VM über den folgenden Befehl eine Verbindung über die interne IP-Adresse der VM her:

    ssh USERNAME@INTERNAL_IP

    Ersetzen Sie Folgendes:

PuTTY-Anwendung

So stellen Sie über PuTTY eine Verbindung zu einer VM her:

  1. Fügen Sie der Bastion Host-VM einen SSH-Schlüssel hinzu, falls noch nicht geschehen.
  2. Wenn auf der Workstation die PuTTY-Anwendung noch nicht installiert ist, laden Sie die PuTTY-Paketdateien herunter.
  3. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf und suchen Sie die interne IP-Adresse der VM, zu der Sie eine Verbindung herstellen möchten.

    Zu Seite „VM-Instanzen“

  4. Öffnen Sie die PuTTY App. Es wird ein Fenster zur Verbindungskonfiguration geöffnet.
  5. Geben Sie im Feld Host Name den dem SSH-Schlüssel zugeordneten Nutzernamen und die externe IP-Adresse der VM ein, zu der Sie eine Verbindung herstellen möchten. Verwenden Sie das folgende Format:

    USERNAME@EXTERNAL_IP

    Ersetzen Sie Folgendes:

  6. Gehen Sie unter Kategorie zu Verbindung > SSH-Verbindung > Authentifizierung.
  7. Wählen Sie im Feld Private Schlüsseldatei zur Authentifizierung die private SSH-Schlüsseldatei aus, die dem öffentlichen Schlüssel entspricht, den Sie der VM hinzugefügt haben.
  8. Wählen Sie im Abschnitt Authentifizierungsparameter die Option Agent-Weiterleitung zulassen aus.
  9. Klicken Sie auf Öffnen, um eine Verbindung zur Bastion Host-VM herzustellen.
  10. Stellen Sie über die Bastion Host-VM über den folgenden Befehl eine Verbindung über die interne IP-Adresse der VM her:

    ssh USERNAME@INTERNAL_IP

    Ersetzen Sie Folgendes:

Fehlerbehebung

Methoden zur Diagnose und Behebung von fehlerhaften SSH-Verbindungen finden Sie unter Fehlerbehebung für SSH.

Nächste Schritte