En este documento se describe cómo configurar aplicaciones para que se conecten mediante programación entre dos instancias de máquina virtual (VM) mediante SSH y OS Login. Habilitar las aplicaciones para que usen SSH puede ser útil para automatizar los procesos de gestión del sistema.
Todos los ejemplos de código que se usan en esta guía se alojan en la página de GitHub GoogleCloudPlatform/python-docs-samples.
Antes de empezar
- Configura SSH para una cuenta de servicio.
- Configura el inicio de sesión en el SO en tu proyecto o en una VM que se ejecute como cuenta de servicio.
-
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos 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
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
Configurar una aplicación SSH
Configura tu aplicación para gestionar claves SSH e iniciar conexiones SSH a máquinas virtuales de Compute Engine. A grandes rasgos, tu aplicación debe hacer lo siguiente:
- Importa la biblioteca Google OS Login para crear bibliotecas de cliente, lo que te permite autenticarte con la API OS Login.
- Inicializa el objeto de cliente de OS Login para que tu aplicación pueda usar OS Login.
- Implementa un método
create_ssh_key()
que genere una clave SSH para la cuenta de servicio de la VM y añada la clave pública a la cuenta de servicio. - Llama al método
get_login_profile()
de la biblioteca OS Login para obtener el nombre de usuario POSIX que usa la cuenta de servicio. - Implementa un método
run_ssh()
para ejecutar un comando SSH remoto. - Elimina los archivos de claves SSH temporales.
Aplicación SSH de ejemplo
La aplicación de ejemplo
oslogin_service_account_ssh.py
muestra una posible implementación de una aplicación SSH. En este ejemplo, la aplicación usa el métodorun_ssh()
para ejecutar un comando en una instancia remota y devolver el resultado del comando.Ejecutar la aplicación SSH
Después de crear una aplicación que use SSH, puedes ejecutarla siguiendo un proceso similar al del ejemplo siguiente, que instala y ejecuta la aplicación de ejemplo
oslogin_service_account_ssh.py
. Las bibliotecas que instales pueden variar en función del lenguaje de programación que use la aplicación.También puedes escribir una aplicación que importe
oslogin_service_account_ssh.py
y la ejecute directamente.Conéctate a la VM que aloja la aplicación SSH.
En la VM, instala
pip
y la biblioteca de cliente de Python 3:sudo apt update && sudo apt install python3-pip -y && pip install --upgrade google-cloud-os-login requests
Opcional: Si usas la aplicación de ejemplo
oslogin_service_account_ssh.py
, descárgala desde GoogleCloudPlatform/python-docs-samples:curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/compute/oslogin/oslogin_service_account_ssh.py
Ejecuta la aplicación SSH. La aplicación de ejemplo usa
argparse
para aceptar variables de la línea de comandos. En este ejemplo, indica a la aplicación que instale y ejecutecowsay
en otra VM de tu proyecto.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
Haz los cambios siguientes:
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 debería ser similar al siguiente:
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
Siguientes pasos
- Descarga y consulta el código de ejemplo completo. La muestra completa incluye un pequeño ejemplo de cómo usar todos estos métodos juntos. Puedes descargarla, cambiarla y ejecutarla para adaptarla a tus necesidades.
- Consulta más información sobre cómo funcionan las conexiones SSH en Compute Engine, incluida la configuración y el almacenamiento de claves SSH.
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-09-12 (UTC).
-