Este documento describe cómo configurar aplicaciones para conectarse mediante programación entre dos instancias de máquinas virtuales (VM) mediante SSH y el inicio de sesión en el sistema operativo. Permitir que las aplicaciones utilicen SSH puede resultar útil para automatizar los procesos de gestión del sistema.
Todos los ejemplos de código utilizados en esta guía están alojados en la página de GitHub GoogleCloudPlatform/python-docs-samples .
Antes de comenzar
- Configure SSH para una cuenta de servicio .
- Configure el inicio de sesión del sistema operativo en su proyecto o en una máquina virtual que se ejecute como una cuenta de servicio.
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
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 la biblioteca de inicio de sesión del sistema operativo de Google para crear bibliotecas cliente, lo que le permite autenticarse con la API de inicio de sesión del sistema operativo.
- Inicialice el objeto Cliente de inicio de sesión del sistema operativo para permitir que su aplicación utilice el inicio de sesión del sistema operativo.
- Implemente un método
create_ssh_key()
que genere una clave SSH para la cuenta de servicio de la VM y agregue la clave pública a la cuenta de servicio. - Llame al método
get_login_profile()
desde la biblioteca de inicio de sesión del sistema operativo para obtener el nombre de usuario POSIX que utiliza la cuenta de servicio. - Implemente un método
run_ssh()
para ejecutar un comando SSH remoto. - Elimine los archivos de claves SSH temporales.
Conéctese a la máquina virtual que aloja la aplicación SSH.
En la VM, instale
pip
y la biblioteca cliente de Python 3:sudo apt update && sudo apt install python3-pip -y && pip install --upgrade google-cloud-os-login requests
Opcional: si está utilizando la aplicación de muestra
oslogin_service_account_ssh.py
, descárguela de GoogleCloudPlatform/python-docs-samples :curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/compute/oslogin/oslogin_service_account_ssh.py
Ejecute la aplicación SSH. La aplicación de muestra usa
argparse
para aceptar variables desde la línea de comando. En este ejemplo, indique a la aplicación que instale y ejecutecowsay
en otra VM de su proyecto.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto de la VM a la que se conecta la aplicación. -
VM_NAME
: el nombre de la VM a la que se conecta la aplicación. -
ZONE
: la zona de la VM a la que se conecta la aplicación.
El resultado es similar al siguiente:
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
-
- Descargue y vea el ejemplo de código completo . La muestra completa incluye un pequeño ejemplo del uso de todos estos métodos juntos. No dudes en descargarlo, cambiarlo y ejecutarlo según tus necesidades.
- Obtén más información sobre cómo funcionan las conexiones SSH en Compute Engine , incluida la configuración y el almacenamiento de claves SSH.
Configurar una aplicación SSH
Configura tu aplicación para administrar claves SSH e iniciar conexiones SSH a máquinas virtuales de Compute Engine. En un nivel alto, su aplicación debería hacer lo siguiente:
Aplicación SSH de muestra
La aplicación de muestra
oslogin_service_account_ssh.py
demuestra una posible implementación de una aplicación SSH. En este ejemplo, la aplicación utiliza el métodorun_ssh()
para ejecutar un comando en una instancia remota y devolver el resultado del comando.Ejecute la aplicación SSH
Después de crear una aplicación que usa SSH, puede ejecutarla siguiendo un proceso similar al siguiente ejemplo, que instala y ejecuta la aplicación de muestra
oslogin_service_account_ssh.py
. Las bibliotecas que instale pueden diferir, según el lenguaje de programación que utilice la aplicación.Alternativamente, puede escribir una aplicación que importe
oslogin_service_account_ssh.py
y la ejecute directamente.¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-17 (UTC).
-