Este documento descreve como configurar aplicativos para se conectarem programaticamente entre duas instâncias de máquina virtual (VM) usando SSH e login do sistema operacional. Habilitar aplicativos para usar SSH pode ser útil para automatizar processos de gerenciamento de sistema.
Todos os exemplos de código usados neste guia estão hospedados na página GoogleCloudPlatform/python-docs-samples 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.
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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 Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Importe a biblioteca de login do sistema operacional do Google para criar bibliotecas de cliente, o que permite a autenticação com a API de login do sistema operacional.
- Inicialize o objeto OS Login Client para permitir que seu aplicativo use o OS Login.
- 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 biblioteca de login do sistema operacional para obter 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.
Conecte-se à VM que hospeda o aplicativo SSH.
Na VM, instale
pip
e a biblioteca cliente 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 aplicativo de amostra
oslogin_service_account_ssh.py
, faça download dele 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 aplicativo SSH. O aplicativo de exemplo usa
argparse
para aceitar variáveis da linha de comando. Neste exemplo, instrua o aplicativo a instalar e executarcowsay
em outra VM do seu projeto.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
Substitua o seguinte:
-
PROJECT_ID
: o ID do projeto da VM à qual o aplicativo está se conectando. -
VM_NAME
: o nome da VM à qual o aplicativo está se conectando. -
ZONE
: a zona da VM à qual o aplicativo está se conectando.
A saída é semelhante à seguinte:
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
-
- Baixe e visualize o exemplo de código completo . A amostra completa inclui um pequeno exemplo do uso de todos esses métodos juntos. Sinta-se à vontade para baixá-lo, alterá-lo e executá-lo de acordo com suas necessidades.
- Saiba mais sobre como as conexões SSH funcionam no Compute Engine , incluindo configuração e armazenamento de chaves SSH.
Configure um aplicativo SSH
Configure seu aplicativo para gerenciar chaves SSH e iniciar conexões SSH com VMs do Compute Engine. Em um nível superior, seu aplicativo deve fazer o seguinte:
Exemplo de aplicativo SSH
O aplicativo de exemplo
oslogin_service_account_ssh.py
demonstra uma possível implementação de um aplicativo 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.Execute o aplicativo SSH
Depois de criar um aplicativo que usa SSH, você poderá executá-lo seguindo um processo semelhante ao exemplo a seguir, que instala e executa o aplicativo de amostra
oslogin_service_account_ssh.py
. As bibliotecas que você instala podem ser diferentes, dependendo da linguagem de programação usada pelo aplicativo.Como alternativa, você pode escrever um aplicativo que importe
oslogin_service_account_ssh.py
e o execute diretamente.O que vem a seguir
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-04-21 UTC.
-