Las VMs que admiten certificados de inicio de sesión del SO admiten conexiones de claves SSH y certificados SSH. Los certificados SSH son claves SSH que han sido firmadas por otra clave de confianza. En este caso, se trata de una autoridad de certificación que gestiona OS Login. En este documento se describe cómo configurar máquinas virtuales con inicio de sesión del SO para que requieran certificados SSH en las conexiones SSH y cómo bloquear las conexiones de claves SSH sin firmar.
Cuando configuras el inicio de sesión del SO para que se requieran certificados SSH para conectarse a las VMs, solo se permite la conexión a las VMs con certificados SSH que hayan sido firmados por la autoridad de certificación. Las conexiones con claves SSH sin firmar se rechazan. Los certificados SSH tienen una validez de cinco minutos, tras los cuales ya no se pueden usar para conectarse a las VMs y se debe generar un nuevo certificado.
Te recomendamos que configures el inicio de sesión del SO para que se requieran certificados SSH para las conexiones SSH, lo que añade una capa de seguridad adicional contra usuarios malintencionados. Los certificados SSH tienen una duración breve y solo son válidos para una VM específica, lo que significa que, si se vulneran, su superficie de ataque es significativamente menor y su ventana de ataque es significativamente más corta que la de las claves SSH de larga duración.
Si tu organización usa la federación de identidades de Workforce, consulta el artículo Usar la federación de identidades de Workforce con el inicio de sesión en SO para saber cómo habilitar los certificados SSH en tu organización.
Antes de empezar
- Configura OS Login y asigna roles de gestión de identidades y accesos de OS Login.
-
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.
Limitaciones
- La VM a la que te conectas debe tener la versión 7.4 o una posterior de OpenSSH para usar certificados SSH.
Requerir certificados SSH
Puedes configurar OS Login para que requiera certificados SSH en todas las conexiones SSH a las VMs de OS Login de tu proyecto o en VMs concretas. Después de configurar el inicio de sesión del SO para que requiera certificados SSH, las conexiones SSH desde la Google Cloud consola y la CLI de gcloud usarán certificados SSH de forma predeterminada. Si no quieres configurar el inicio de sesión del SO para que requiera certificados, pero quieres usar certificados para conectarte a las VMs, debes conectarte mediante herramientas de terceros, tal como se describe en la sección Conectarse a una VM mediante un certificado SSH.
Requerir certificados SSH para todas las VMs de un proyecto que tengan habilitado OS Login
Para requerir certificados SSH para todas las conexiones a todas las VMs que usen Inicio de sesión del SO en tu proyecto, usa la Google Cloud consola o la CLI de gcloud.
Consola
Para requerir certificados SSH en todas las conexiones a las VMs con OS Login habilitado, usa la consola para definir
enable-oslogin
yTRUE
en los metadatos del proyecto: Google Cloudenable-oslogin-certificates
Ve a la página Metadatos.
Haz clic en Editar.
Haz clic en Añadir elemento.
- En el campo Key (Clave), introduce
enable-oslogin
. - En el campo Valor, introduce
TRUE
.
- En el campo Key (Clave), introduce
Haz clic en Añadir elemento.
- En el campo Key (Clave), introduce
enable-oslogin-certificates
. - En el campo Valor, introduce
TRUE
.
- En el campo Key (Clave), introduce
Haz clic en Guardar.
gcloud
Para requerir certificados SSH en todas las conexiones a las máquinas virtuales con OS Login habilitado, usa el comando
gcloud compute project-info add-metadata
para definirenable-oslogin=TRUE
yenable-oslogin-certificates=TRUE
en los metadatos del proyecto:gcloud compute project-info add-metadata \ --metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
Requerir certificados SSH en una sola VM con OS Login habilitado
Para requerir certificados para todas las conexiones SSH a una sola VM que use OS Login, utiliza la consola Google Cloud o la CLI de gcloud.
Consola
Para requerir certificados SSH para todas las conexiones a una sola máquina virtual, usa la consolaGoogle Cloud para definir
enable-oslogin
yenable-oslogin-certificates
comoTRUE
en los metadatos de la instancia:Ve a la página Instancias de VM.
Haz clic en el nombre de la VM para la que quieras requerir certificados SSH.
Haz clic en Editar.
En la sección Metadatos, haz clic en Añadir elemento.
- En el campo Key (Clave), introduce
enable-oslogin
. - En el campo Valor, introduce
TRUE
.
- En el campo Key (Clave), introduce
Haz clic en Añadir elemento.
- En el campo Key (Clave), introduce
enable-oslogin-certificates
. - En el campo Valor, introduce
TRUE
.
- En el campo Key (Clave), introduce
Haz clic en Guardar.
gcloud
Para requerir certificados SSH para todas las conexiones a una sola VM, usa el comando
gcloud compute instances add-metadata
para definirenable-oslogin=TRUE
yenable-oslogin-certificates=TRUE
en los metadatos de la instancia:gcloud compute instances add-metadata VM_NAME \ --metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
Sustituye
VM_NAME
por el nombre de tu VM.Conectarse a una VM mediante un certificado SSH
Después de configurar el inicio de sesión del SO para que requiera certificados SSH, las conexiones SSH desde la consola y la CLI de gcloud usarán certificados SSH de forma predeterminada. Google Cloud Si no quieres configurar el inicio de sesión del SO para que requiera certificados, pero quieres usar certificados para conectarte a las VMs, debes conectarte mediante herramientas de terceros.
Consola
Conéctate a las VMs mediante SSH en el navegador desde laGoogle Cloud consola. Para ello, haz lo siguiente:
- In the Google Cloud console, go to the VM instances page.
-
In the list of virtual machine instances, click SSH in the row of
the instance that you want to connect to.
gcloud
Usa el comando
gcloud beta compute ssh
para conectarte a una VM mediante un certificado:gcloud beta compute ssh VM_NAME
Sustituye
VM_NAME
por el nombre de la VM a la que quieras conectarte.Herramientas de terceros
Para usar un certificado SSH con un cliente SSH de terceros, sigue estos pasos:
Crea una clave SSH si aún no tienes una.
Firma tu clave SSH pública con el método
projects.locations.signSshPublicKey
:POST https://oslogin.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION:signSshPublicKey { "ssh_public_key": "PUBLIC_KEY" "compute_instance": "COMPUTE_INSTANCE", "service_account": "SERVICE_ACCOUNT" }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto que contiene la VM a la que quieres conectarteLOCATION
: la región en la que se encuentra la VM a la que quieres conectartePUBLIC_KEY
: el contenido de tu archivo de clave pública SSHCOMPUTE_INSTANCE
: la instancia de Compute Engine a la que conectarse, con el formatoprojects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID
.SERVICE_ACCOUNT
: la cuenta de servicio adjunta a la instancia. Elimina este campo si la instancia no tiene ninguna cuenta de servicio asociada.
Copia el certificado SSH de la salida del método
projects.locations.signSshPublicKey
y guarda el contenido en un archivo nuevo.Define los permisos del archivo de certificado SSH ejecutando el siguiente comando:
sudo chmod 600 FILE_NAME
Sustituye
FILE_NAME
por el nombre del archivo.Conéctate a la máquina virtual con el siguiente comando:
ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
Haz los cambios siguientes:
PATH_TO_PRIVATE_KEY
: la ruta a tu archivo de clave privada SSH.PATH_TO_SSH_CERTIFICATE
: la ruta al archivo de certificado SSH.USERNAME
: tu nombre de usuario de OS LoginEXTERNAL_IP
: la dirección IP externa de la VM.
Solución de problemas
Si no puedes conectarte a las VMs que has configurado para que requieran certificados SSH, puede deberse a lo siguiente:
- Tu VM usa una versión no compatible de OpenSSH. Para solucionar este problema, inhabilita los certificados en los metadatos de la VM configurando
enable-oslogin-certificates
comoFALSE
en los metadatos de instancia.
Siguientes pasos
- Consulta más información sobre OS Login.
- Consulta cómo configurar OS Login con la verificación en dos pasos.
- Consulta cómo gestionar OS Login en una organización.
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).
-