In diesem Dokument wird beschrieben, wie Sie Anwendungen für die programmatische Verbindung zwischen zwei VM-Instanzen über SSH und OS Login konfigurieren. Wenn Sie Anwendungen erlauben, SSH zu verwenden, können Sie Systemverwaltungsprozesse automatisieren.
Alle in dieser Anleitung verwendeten Codebeispiele werden auf der GitHub-Seite „GoogleCloudPlatform/python-docs-samples“ gehostet.
Vorbereitung
- Richten Sie SSH für ein Dienstkonto ein.
- Richten Sie OS Login für Ihr Projekt oder auf einer VM ein, die als Dienstkonto ausgeführt wird.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Dienste und APIs von Google Cloud überprüft. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei der Compute Engine authentifizieren. Dazu haben Sie folgende Möglichkeiten:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
- Set a default region and zone.
SSH-Anwendung einrichten
Richten Sie Ihre Anwendung so ein, dass sie SSH-Schlüssel verwalten und SSH-Verbindungen zu Compute Engine-VMs herstellen kann. Auf übergeordneter Ebene sollten Sie Folgendes tun können:
- Google OS Login-Bibliothek importieren, um Clientbibliotheken zu erstellen. Dadurch können Sie sich bei der OS Login API authentifizieren.
- OS Login Client-Objekt initialisieren, damit Ihre Anwendung OS Login verwenden kann.
create_ssh_key()-Methode implementieren, die einen SSH-Schlüssel für das Dienstkonto der VM generiert und den öffentlichen Schlüssel zum Dienstkonto hinzufügt.get_login_profile()-Methode der OS Login-Bibliothek aufrufen, um den POSIX-Nutzernamen abzurufen, den das Dienstkonto verwendet.run_ssh()-Methode implementieren, um einen Remote-SSH-Befehl auszuführen.- Temporäre SSH-Schlüsseldateien entfernen.
SSH-Beispielanwendung
Die Beispielanwendung
oslogin_service_account_ssh.pyzeigt eine mögliche Implementierung einer SSH-Anwendung. In diesem Beispiel verwendet die Anwendung dierun_ssh()-Methode, um einen Befehl auf einer Remoteinstanz auszuführen und die Befehlsausgabe zurückzugeben.SSH-Anwendung ausführen
Nachdem Sie eine Anwendung erstellt haben, die SSH verwendet, können Sie sie ausführen. Das Verfahren ähnelt dem folgenden Beispiel, in dem die Beispielanwendung
oslogin_service_account_ssh.pyinstalliert und ausgeführt wird. Die Bibliotheken, die Sie installieren, sind von der Programmiersprache der Anwendung abhängig.Alternativ können Sie eine Anwendung schreiben, die
oslogin_service_account_ssh.pyimportiert und direkt ausführt.Stellen Sie eine Verbindung zur VM her, auf der die SSH-Anwendung gehostet wird.
Installieren Sie
pipund die Python 3-Clientbibliothek auf der VM:sudo apt update && sudo apt install python3-pip -y && pip install --upgrade google-cloud-os-login requests
Optional: Wenn Sie die Beispielanwendung
oslogin_service_account_ssh.pyverwenden, laden Sie sie von GoogleCloudPlatform/python-docs-samples herunter:curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/compute/oslogin/oslogin_service_account_ssh.py
Führen Sie die SSH-Anwendung aus. Die Beispielanwendung verwendet
argparse, um Variablen aus der Befehlszeile zu übernehmen. In diesem Beispiel wird die Anwendung angewiesen,cowsayauf einer anderen VM in Ihrem Projekt zu installieren und auszuführen.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID der VM, mit der die Anwendung eine Verbindung herstellt.VM_NAME: Der Name der VM, mit der die Anwendung eine Verbindung herstellt.ZONE: Die Zone der VM, mit der die Anwendung eine Verbindung herstellt.
Die Ausgabe sieht etwa so aus:
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
Nächste Schritte
- Laden Sie das vollständige Codebeispiel herunter und sehen Sie es sich an. Es enthält ein kleines Beispiel für die gemeinsame Verwendung dieser Methoden. Sie können es nach Bedarf herunterladen, ändern und ausführen.
- Erfahren Sie mehr über die Funktionsweise von SSH-Verbindungen in Compute Engine, einschließlich der Konfiguration und Speicherung von SSH-Schlüsseln.
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-11-18 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-11-18 (UTC)."],[],[]] -