Questo documento descrive come configurare le app per la connessione programmatica tra due istanze di macchine virtuali (VM) tramite SSH e OS Login. Abilitare le app per utilizzare SSH può essere utile per automatizzare i processi di gestione del sistema.
Tutti gli esempi di codice utilizzati in questa guida sono ospitati sulla pagina GitHub di GoogleCloudPlatform/python-docs-samples.
Prima di iniziare
- Configura SSH per un account di servizio.
- Configura OS Login sul tuo progetto o su una VM eseguita come account di servizio.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
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
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Set a default region and zone.
- Importa la libreria Google OS Login per creare librerie client che ti consentono di autenticarti con l'API OS Login.
- Inizializza l'oggetto OS Login Client per consentire alla tua app di utilizzare OS Login.
- Implementare un metodo
create_ssh_key()
che generi una chiave SSH per l'account di servizio della VM e aggiunga la chiave pubblica all'account di servizio. - Richiama il metodo
get_login_profile()
dalla libreria OS Login per ottenere il nome utente POSIX utilizzato dall'account di servizio. - Implementa un metodo
run_ssh()
per eseguire un comando SSH remoto. - Rimuovi i file temporanei delle chiavi SSH.
Connettiti alla VM che ospita l'app SSH.
Sulla 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 variabili dalla riga di comando. In questo esempio, indica all'app di installare ed eseguirecowsay
su un'altra VM nel tuo 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 | || ||
- Scarica e visualizza l'esempio di codice completo. L'esempio completo include un piccolo esempio di utilizzo di tutti questi metodi insieme. Puoi scaricarla, modificarla ed eseguirla in base alle tue esigenze.
- Scopri di più su come funzionano le connessioni SSH in Compute Engine, incluse la configurazione e l'archiviazione delle chiavi SSH.
Configurazione di un'app SSH
Configura l'app per gestire le chiavi SSH e avviare connessioni SSH alle VM di Compute Engine. A livello generale, la tua app dovrebbe:
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 all'esempio seguente, che installa ed esegue l'app di esempio
oslogin_service_account_ssh.py
. Le librerie installate potrebbero essere diverse, a seconda del linguaggio di programmazione utilizzato dall'app.In alternativa, puoi scrivere un'app che importi
oslogin_service_account_ssh.py
e la esegua direttamente.Passaggi successivi
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 2024-05-31 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -