In diesem Dokument wird beschrieben, wie Sie mithilfe einer Bastion-Host-VMeine Verbindung zu einer VM-Instanz über ihre interne IP-Adresse herstellen. Bastion Hosts bieten einen externen Einstiegspunkt in ein Virtual Private Cloud-Netzwerk (VPC), 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 Ziel-VM her.
Eine VM über ihre interne IP-Adresse zu verbinden, ist hilfreich, wenn die VM keine externe IP-Adresse hat. Wenn die VM eine externe IP-Adresse hat, stellen Sie über diese 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:
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
- Geben Sie die folgenden VM-Details an:
- Name: Der Name Ihrer VM.
- Maschinentyp: Ein Maschinentyp. Wählen Sie einen kleinen Maschinentyp wie
e2-microaus. - Bootlaufwerk Betriebssystem: Ein beliebiges Linux-Betriebssystem.
Maximieren Sie den Abschnitt Erweiterte Optionen und tun Sie Folgendes:
Wählen Sie im Abschnitt Netzwerkschnittstellen das VPC-Netzwerk und das Subnetz aus, in dem sich auch die Ziel-VM befindet.
Wählen Sie für Externe IPv4-Adresse die Option Kurzlebig aus.
Klicken Sie zum Erstellen und Starten der VM auf Erstellen.
gcloud
Erstellen Sie eine Bastion-Host-VM mit dem
gcloud compute instances create Befehl:
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
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.
Erstellen Sie die Bastion-Host-VM mit dem folgenden 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_NAMEist der Name der VM.ZONEist die Zone für die VM.IMAGE_FAMILYist eine Linux Imagefamilie.IMAGE_PROJECTist das Imageprojekt , das das Image enthält.SUBNETist dasselbe VPC-Subnetz wie die Ziel-VM. Wenn Sie die Standard-VPC verwenden, istSUBNETgleichdefault.
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 dem
gcloud compute ssh Befehl über einen Bastion Host eine SSH-Verbindung zu einer VM her:
Stellen Sie mit dem folgenden Befehl eine Verbindung zur Bastion-Host-VM her:
gcloud compute ssh BASTION_NAME
Ersetzen Sie
BASTION_NAMEdurch den Namen der Bastion-Host-VM.Stellen Sie von der Bastion-Host-VM aus mit dem Flag
--internal-ipeine Verbindung zur Haupt-VM über ihre interne IP-Adresse her:gcloud compute ssh VM_NAME \ --internal-ipErsetzen Sie
VM_NAMEdurch den Namen der VM, zu der Sie eine Verbindung herstellen möchten.
OpenSSH-Clients
So stellen Sie über einen OpenSSH-Client eine Verbindung zu einer VM über einen Bastion Host her:
- Fügen Sie der VM einen SSH-Schlüssel hinzu, falls noch nicht geschehen.
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf und suchen Sie die externe IP-Adresse der Bastion-Host-VM.
- Öffnen Sie ein Terminal in der Workstation.
Stellen Sie mit dem folgenden Befehl eine Verbindung zur Bastion-Host-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: Ihren Nutzernamen. Wenn Sie Ihre SSH-Schlüssel in Metadaten verwalten, muss dies der Nutzername sein, den Sie bei der Erstellung des SSH-Schlüssels angegeben haben. Für OS Login-Konten wird der Nutzername in Ihrem Google-Profil festgelegt. Beispielcloudysanfrancisco_example_comodercloudysanfrancisco.-
EXTERNAL_IP: Externe IP-Adresse der VM
Stellen Sie von der Bastion-Host-VM aus mit dem folgenden Befehl eine Verbindung über die interne IP-Adresse einer VM her:
ssh USERNAME@INTERNAL_IP
Dabei gilt:
USERNAME: Ihren Nutzernamen. Wenn Sie Ihre SSH-Schlüssel in Metadaten verwalten, muss dies der Nutzername sein, den Sie bei der Erstellung des SSH-Schlüssels angegeben haben. Für OS Login-Konten wird der Nutzername in Ihrem Google-Profil festgelegt. Beispielcloudysanfrancisco_example_comodercloudysanfrancisco.INTERNAL_IP: die interne IP-Adresse der VM
PuTTY-Anwendung
So stellen Sie über PuTTY eine Verbindung zu einer VM über einen Bastion Host her:
- Fügen Sie der Bastion-Host-VM einen SSH-Schlüssel hinzu, falls noch nicht geschehen.
- Wenn auf der Workstation die PuTTY-Anwendung noch nicht installiert ist, laden Sie die PuTTY-Paketdateien herunter.
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.
- Öffnen Sie die PuTTY-Anwendung. Es wird ein Fenster zur Verbindungskonfiguration geöffnet.
Geben Sie im Feld
Host Nameden 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:
USERNAME: Ihren Nutzernamen. Wenn Sie Ihre SSH-Schlüssel in Metadaten verwalten, muss dies der Nutzername sein, den Sie bei der Erstellung des SSH-Schlüssels bestimmt haben. Für OS Login-Konten wird der Nutzername in Ihrem Google-Profil festgelegt. Beispielcloudysanfrancisco_example_comodercloudysanfrancisco.-
EXTERNAL_IP: die externe IP-Adresse der VM
- Gehen Sie im Menü Kategorie zu Verbindung > SSH > Authentifizierung.
- 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.
- Wählen Sie im Abschnitt Authentifizierungsparameter die Option Agent-Weiterleitung zulassen aus.
- Klicken Sie auf Öffnen , um eine Verbindung zur Bastion-Host-VM herzustellen.
Stellen Sie von der Bastion-Host-VM aus mit dem folgenden Befehl eine Verbindung über die interne IP-Adresse einer VM her:
ssh USERNAME@INTERNAL_IP
Dabei gilt:
USERNAME: Ihren Nutzernamen. Wenn Sie Ihre SSH-Schlüssel in Metadaten verwalten, muss dies der Nutzername sein, den Sie bei der Erstellung des SSH-Schlüssels angegeben haben. Für OS Login-Konten wird der Nutzername in Ihrem Google-Profil festgelegt. Beispielcloudysanfrancisco_example_comodercloudysanfrancisco.INTERNAL_IP: die interne IP-Adresse der VM
Fehlerbehebung
Methoden zur Diagnose und Behebung von fehlerhaften SSH-Verbindungen finden Sie unter Fehlerbehebung für SSH.
Nächste Schritte
- Zugriff auf Instanzen verwalten
- Dateien auf VMs übertragen
- Mehr darüber erfahren, wie SSH-Verbindungen zu Linux-VMs in Compute Engine funktionieren.