Este documento descreve como configurar apps para se conectar de maneira programática entre duas instâncias de máquina virtual (VM) usando login SSH e SO. Ativar apps para usar o SSH pode ser útil para automatizar processos de gerenciamento de sistemas.
Todas as amostras de código usadas neste guia estão hospedadas na página do GoogleCloudPlatform/python-docs-samples do GitHub.
Antes de começar
- Configure o SSH para uma conta de serviço.
- Configure o Login do SO no seu projeto ou em uma VM executada como uma conta de serviço.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Trusted Cloud by S3NS .
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
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
-
Instale a Google Cloud CLI e faça login CLI gcloud com sua identidade federada. Depois de fazer login, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud init
- Set a default region and zone.
Configurar um app SSH
Configure seu app para gerenciar chaves SSH e iniciar conexões SSH com VMs do Compute Engine. De modo geral, o app precisa fazer o seguinte:
- Importe a biblioteca de Login do SO do Google para criar bibliotecas de cliente, o que permite a autenticação com a API Login do SO.
- Inicialize o objeto da API OS Login para permitir que o app use o Login do SO.
- Implemente um método
create_ssh_key()
que gere uma chave SSH para a conta de serviço da VM e adicione a chave pública à conta de serviço. - Chame o método
get_login_profile()
da API do Login do SO para conseguir o nome de usuário POSIX usado pela conta de serviço. - Implemente um método
run_ssh()
para executar um comando SSH remoto. - Remova os arquivos de chave SSH temporários.
App SSH de amostra
O app de exemplo
oslogin_service_account_ssh.py
demonstra uma possível implementação de um app SSH. Neste exemplo, o aplicativo usa o métodorun_ssh()
para executar um comando em uma instância remota e retornar a saída do comando.Executar o app SSH
Depois de criar um app que usa SSH, é possível executá-lo seguindo um processo semelhante ao exemplo a seguir, que instala e executa o app de amostra
oslogin_service_account_ssh.py
. As bibliotecas instaladas podem ser diferentes, dependendo da linguagem de programação que o app usar.Como alternativa, você pode criar um app que importa
oslogin_service_account_ssh.py
e o executa diretamente.Conecte-se à VM que hospeda o app SSH.
Na VM, instale
pip
e a biblioteca de cliente do Python 3:sudo apt update && sudo apt install python3-pip -y && pip install --upgrade google-cloud-os-login requests
Opcional: se você estiver usando o app de exemplo
oslogin_service_account_ssh.py
, faça o download em GoogleCloudPlatform/python-docs-samples:curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/compute/oslogin/oslogin_service_account_ssh.py
Execute o app SSH. O app de exemplo usa
argparse
para aceitar variáveis da linha de comando. Neste exemplo, instrua o app a instalar e executarcowsay
em outra VM no projeto.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
Substitua:
PROJECT_ID
: o ID do projeto da VM a que o aplicativo está se conectando.VM_NAME
: o nome da VM a que o app está se conectando.ZONE
: a zona da VM a que o aplicativo está se conectando.
O resultado será assim:
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
A seguir
- Faça o download e confira o exemplo de código completo. A amostra completa contém um pequeno exemplo de como usar todos esses métodos juntos. Sinta-se à vontade para fazer o download desse exemplo, alterá-lo e executá-lo para atender às suas necessidades.
- Saiba mais sobre como as conexões SSH funcionam no Compute Engine, incluindo configuração e armazenamento de chaves SSH.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-08 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]],[]] -