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 Apps erlauben, SSH zu verwenden, können Sie Systemverwaltungsprozesse automatisieren.
Alle in diesem Handbuch verwendeten Codebeispiele werden auf der GitHub-Seite „GoogleCloudPlatform/python-docs-samples” gehostet.
Hinweise
- 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 Trusted Cloud by S3NS -Dienste und APIs überprüft.
Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit folgendem Befehl:
gcloud init
- Set a default region and zone.
SSH-App einrichten
Richten Sie Ihre App so ein, dass sie SSH-Schlüssel verwalten und SSH-Verbindungen zu Compute Engine-VMs herstellen kann. Auf übergeordneter Ebene sollte Ihre Anwendung Folgendes tun:
- Importieren Sie die Google OS Login-Bibliothek, um Clientbibliotheken zu erstellen. Dadurch können Sie sich bei der OS Login API authentifizieren.
- Initialisieren Sie das OS Login Client-Objekt, damit Ihre Anwendung OS Login verwenden kann.
- Implementieren Sie eine
create_ssh_key()
-Methode, die einen SSH-Schlüssel für das Dienstkonto der VM generiert und den öffentlichen Schlüssel zum Dienstkonto hinzufügt. - Rufen Sie die Methode
get_login_profile()
aus der OS Login-Bibliothek auf, um den POSIX-Nutzernamen abzurufen, den das Dienstkonto verwendet. - Implementieren Sie eine
run_ssh()
-Methode, um einen Remote-SSH-Befehl auszuführen. - Entfernen Sie die temporären SSH-Schlüsseldateien.
SSH-Beispiel-App
Die Beispielanwendung
oslogin_service_account_ssh.py
zeigt eine mögliche Implementierung einer SSH-Anwendung. In diesem Beispiel verwendet die Anwendung die Methoderun_ssh()
, um einen Befehl auf einer Remoteinstanz auszuführen und die Befehlsausgabe zurückzugeben.SSH-App ausführen
Nachdem Sie eine App erstellt haben, die SSH verwendet, können Sie sie ausführen. Das Verfahren ähnelt dem folgenden Beispiel, in dem die Beispiel-App
oslogin_service_account_ssh.py
installiert und ausgeführt wird. Die Bibliotheken, die Sie installieren, können je nach Programmiersprache der App variieren.Alternativ können Sie eine App schreiben, die
oslogin_service_account_ssh.py
importiert und direkt ausführt.Stellen Sie eine Verbindung zur VM her, auf der die SSH-App gehostet wird.
Installieren Sie auf der VM
pip
und die Python 3-Clientbibliothek: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.py
verwenden, 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 von der Befehlszeile zu übernehmen. In diesem Beispiel wird die Anwendung angewiesen,cowsay
auf 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
Dabei gilt:
PROJECT_ID
: Die Projekt-ID der VM, zu der die Anwendung eine Verbindung herstellt.VM_NAME
: Der Name der VM, zu der die Anwendung eine Verbindung herstellt.ZONE
: Die Zone der VM, mit der sich die Anwendung verbindet.
Die Ausgabe sieht in 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-08-08 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-08 (UTC)."],[[["This guide outlines the process of configuring applications to establish programmatic connections between two virtual machine (VM) instances using SSH and OS Login, which can enhance system management automation."],["The document details the steps to set up an SSH app, including importing the Google OS Login library, initializing the OS Login Client, generating SSH keys, obtaining the service account's POSIX username, implementing an SSH command execution method, and managing temporary SSH key files."],["A sample Python app, `oslogin_service_account_ssh.py`, is provided as an example, demonstrating how to use the OS Login API to apply public SSH keys for a service account and execute commands on a remote instance over SSH, with code hosted on GitHub."],["Instructions are given on how to prepare your environment and run the provided sample app, including connecting to the VM, installing necessary libraries, and executing a remote command via SSH, including examples."],["The guide references how to view the full code sample on Github, and to learn more about SSH connections in Compute Engine, including SSH key configuration and storage."]]],[]] -