Questo documento descrive come configurare le app per eseguire una connessione programmatica tra due istanze di macchine virtuali (VM) utilizzando SSH e OS Login. L'attivazione dell'utilizzo di SSH da parte delle app può essere utile per automatizzare le procedure di gestione del sistema.
Tutti gli esempi di codice utilizzati in questa guida sono ospitati sulla pagina GitHub GoogleCloudPlatform/python-docs-samples.
Prima di iniziare
- Configura SSH per un service account.
- Configura OS Login nel tuo progetto o in una VM in esecuzione come service account.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Trusted Cloud by S3NS .
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
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
-
Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:
gcloud init
- Set a default region and zone.
Configura un'app SSH
Configura l'app per gestire le chiavi SSH e avviare connessioni SSH alle VM Compute Engine. In linea generale, l'app deve:
- Importa la libreria Google OS Login per creare librerie client che ti consentano di autenticarti con l'API OS Login.
- Inizializza l'oggetto OS Login Client per consentire alla tua app di utilizzare OS Login.
- Implementa un metodo
create_ssh_key()
che genera una chiave SSH per il service account della VM e aggiunge la chiave pubblica al service account. - Richiama il
metodo
get_login_profile()
dalla libreria OS Login per ottenere il nome utente POSIX utilizzato dal service account. - Implementa un metodo
run_ssh()
per eseguire un comando SSH remoto. - Rimuovi i file delle chiavi SSH temporanee.
App SSH di esempio
L'app di esempio
oslogin_service_account_ssh.py
mostra una possibile implementazione di un'app SSH. In questo esempio, l'app utilizza il metodorun_ssh()
per eseguire un comando su un'istanza remota e restituire l'output comando.Esegui l'app SSH
Dopo aver creato un'app che utilizza SSH, puoi eseguirla seguendo una procedura simile a quella dell'esempio seguente, che installa ed esegue l'app di esempio
oslogin_service_account_ssh.py
. Le librerie che installi possono variare, a seconda del linguaggio di programmazione utilizzato dall'app.In alternativa, puoi scrivere un'app che importa
oslogin_service_account_ssh.py
e lo esegue direttamente.Connettiti alla VM che ospita l'app SSH.
Nella VM, installa
pip
e la libreria client Python 3:sudo apt update && sudo apt install python3-pip -y && pip install --upgrade google-cloud-os-login requests
(Facoltativo) Se utilizzi l'app di esempio
oslogin_service_account_ssh.py
, scaricala da GoogleCloudPlatform/python-docs-samples:curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/compute/oslogin/oslogin_service_account_ssh.py
Esegui l'app SSH. L'app di esempio utilizza
argparse
per accettare le variabili dalla riga di comando. In questo esempio, chiedi all'app di installare ed eseguirecowsay
su un'altra VM del progetto.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto della VM a cui si connette l'app.VM_NAME
: il nome della VM a cui si connette l'app.ZONE
: la zona della VM a cui si connette l'app.
L'output è simile al seguente:
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
Passaggi successivi
- Scarica e visualizza l'esempio di codice completo. L'esempio completo include un piccolo esempio di utilizzo di tutti questi metodi insieme. Non esitare a scaricarlo, modificarlo ed eseguirlo in base alle tue esigenze.
- Scopri di più su come funzionano le connessioni SSH in Compute Engine, inclusa la configurazione e lo spazio di archiviazione delle chiavi SSH.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-08 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]],[]] -