Ce document explique comment configurer des applications pour connecter de manière automatisée deux instances de machine virtuelle (VM) à l'aide de SSH et d'OS Login. Le fait d'autoriser les applications à utiliser SSH peut être utile pour automatiser les processus de gestion du système.
Tous les exemples de code utilisés dans ce guide sont hébergés sur la page GitHub GoogleCloudPlatform/python-docs-samples.
Avant de commencer
- Configurez SSH pour un compte de service.
- Configurez OS Login sur votre projet ou sur une VM qui s'exécute en tant que compte de service.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Trusted Cloud by S3NS .
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :
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
-
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez Google Cloud CLI en exécutant la commande suivante :
gcloud init
- Set a default region and zone.
Configurer une application SSH
Configurez votre application pour gérer les clés SSH et initier des connexions SSH aux VM Compute Engine. En règle générale, votre application doit effectuer les opérations suivantes :
- Importez la bibliothèque Google OS Login pour créer des bibliothèques clientes, ce qui vous permet de vous authentifier avec l'API OS Login.
- Initialisez l'objet Client OS Login pour permettre à votre application d'utiliser OS Login.
- Mettez en œuvre une méthode
create_ssh_key()
qui génère une clé SSH pour le compte de service de la VM et ajoute la clé publique au compte de service. - Appelez la méthode
get_login_profile()
à partir de la bibliothèque OS Login pour obtenir le nom d'utilisateur POSIX utilisé par le compte de service. - Mettez en œuvre une méthode
run_ssh()
pour exécuter une commande SSH distante. - Supprimez les fichiers de clé SSH temporaires.
Exemple d'application SSH
L'exemple d'application
oslogin_service_account_ssh.py
illustre une mise en œuvre possible d'une application SSH. Dans cet exemple, l'application utilise la méthoderun_ssh()
pour exécuter une commande sur une instance distante et renvoyer le résultat de la commande.Exécuter l'application SSH
Après avoir créé une application qui utilise SSH, vous pouvez l'exécuter en suivant un processus semblable à l'exemple suivant, qui installe et exécute l'exemple d'application
oslogin_service_account_ssh.py
. Les bibliothèques que vous installez peuvent varier en fonction du langage de programmation utilisé par l'application.Vous pouvez également créer une application qui importe
oslogin_service_account_ssh.py
et l'exécute directement.Connectez-vous à la VM qui héberge l'application SSH.
Sur la VM, installez
pip
et la bibliothèque cliente Python 3 :sudo apt update && sudo apt install python3-pip -y && pip install --upgrade google-cloud-os-login requests
Facultatif : Si vous utilisez l'exemple d'application
oslogin_service_account_ssh.py
, téléchargez-le à partir de GoogleCloudPlatform/python-docs-samples :curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/compute/oslogin/oslogin_service_account_ssh.py
Exécutez l'application SSH. L'exemple d'application utilise
argparse
pour accepter les variables depuis la ligne de commande. Dans cet exemple, indiquez à l'application d'installer et d'exécutercowsay
sur une autre VM de votre projet.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet de la VM à laquelle l'application se connecte.VM_NAME
: nom de la VM à laquelle l'application se connecte.ZONE
: zone de la VM à laquelle l'application se connecte.
Le résultat ressemble à ce qui suit :
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
Étapes suivantes
- Téléchargez et consultez l'exemple de code complet. Il comprend une courte illustration de l'utilisation conjointe de toutes ces méthodes. N'hésitez pas à le télécharger, à le modifier et à l'exécuter selon vos besoins.
- Obtenez plus d'informations sur le fonctionnement des connexions SSH dans Compute Engine, y compris la configuration et le stockage de clés SSH.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/08 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]],[]] -