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 die Verwendung von SSH erlauben, 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 Google Cloud-Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 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.
Stellen Sie eine Verbindung zur VM her, auf der die SSH-Anwendung 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 akzeptieren. 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 | || ||
- 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.
SSH-App einrichten
Richten Sie Ihre App so ein, dass sie SSH-Schlüssel verwaltet und SSH-Verbindungen zu Compute Engine-VMs initiiert. Auf übergeordneter Ebene sollte Ihre Anwendung Folgendes tun:
Beispiel-SSH-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. Gehen Sie dazu ähnlich wie im folgenden Beispiel vor, in dem die Beispiel-App
oslogin_service_account_ssh.py
installiert und ausgeführt wird. Die von Ihnen installierten Bibliotheken können je nach verwendeter Programmiersprache variieren.Alternativ können Sie eine App schreiben, die
oslogin_service_account_ssh.py
importiert und direkt ausführt.Nächste Schritte
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: 2024-12-22 (UTC).
-