Configura el acceso al SO para que requiera certificados SSH para las conexiones SSH

Las VMs que admiten certificados de Acceso al SO admiten conexiones desde claves SSH y certificados SSH. Los certificados SSH son claves SSH que firmó otra clave de confianza, en este caso, una autoridad certificadora que administra el Acceso al SO. En este documento, se describe cómo configurar VMs de Acceso al SO para que requieran certificados SSH para las conexiones SSH y bloqueen las conexiones desde claves SSH sin firmar.

Cuando configuras el Acceso al SO para que requiera certificados SSH para las conexiones a las VMs, solo se permite que los certificados SSH que firmó la autoridad certificadora se conecten a las VMs. Se rechazan las conexiones desde claves SSH sin firmar. Los certificados SSH tienen un vencimiento de cinco minutos, después de los cuales ya no se pueden usar para conectarse a las VMs y se debe generar un certificado nuevo.

Te recomendamos que configures el Acceso al SO para que requiera certificados SSH para las conexiones SSH como una capa de seguridad adicional contra usuarios maliciosos. Los certificados SSH son de corta duración y solo son válidos para una VM específica, lo que significa que, si se vulneran, su superficie de ataque es mucho más pequeña y su ventana de ataque es mucho más corta que la de las claves SSH de larga duración.

Si tu organización usa la federación de identidades de personal, consulta Usa la federación de identidades de personal con el Acceso al SO para obtener información sobre cómo habilitar los certificados SSH para tu organización.

Antes de comenzar

  • Configura el Acceso al SO y asigna roles de IAM de Acceso al SO.
  • Configura la autenticación si aún no lo hiciste. La autenticación verifica tu identidad para acceder a los Google Cloud servicios y las APIs. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Selecciona la pestaña según cómo planeas usar las muestras en esta página:

    Console

    Cuando usas la Google Cloud consola para acceder a los Google Cloud servicios y las APIs, no necesitas configurar la autenticación.

    gcloud

    1. Instala la Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.

  • Configura una región y una zona predeterminadas.

Limitaciones

  • La VM a la que te conectas debe tener OpenSSH 7.4 o una versión posterior para usar certificados SSH.

Requiere certificados SSH

Puedes configurar el Acceso al SO para que requiera certificados SSH para todas las conexiones SSH a las VMs de Acceso al SO en tu proyecto o para VMs individuales. Después de configurar el Acceso al SO para que requiera certificados SSH, las conexiones SSH desde la Google Cloud consola de y la gcloud CLI usan certificados SSH de forma predeterminada. Si no quieres configurar el Acceso al SO para que requiera certificados, pero quieres usar certificados para conectarte a las VMs, debes conectarte con herramientas de terceros, como se describe en la sección Conéctate a una VM con un certificado SSH.

Requiere certificados SSH para todas las VMs que tienen Acceso al SO habilitado en un proyecto

Para requerir certificados SSH para todas las conexiones a todas las VMs que usan el Acceso al SO en tu proyecto, usa la Google Cloud consola de o gcloud CLI.

Console

Para requerir certificados SSH para todas las conexiones a las VMs que tienen Acceso al SO habilitado, usa la Google Cloud consola de para configurar enable-oslogin y enable-oslogin-certificates en TRUE en los metadatos del proyecto:

  1. Ve a la página Metadatos.

    Ir a metadatos

  2. Haz clic en Editar.

  3. Haz clic en Agregar elemento.

    1. En el campo Clave, ingresa enable-oslogin.
    2. En el campo Valor, ingresa TRUE.
  4. Haz clic en Agregar elemento.

    1. En el campo Clave, ingresa enable-oslogin-certificates.
    2. En el campo Valor, ingresa TRUE.
  5. Haz clic en Guardar.

gcloud

Para requerir certificados SSH para todas las conexiones a las VMs que tienen Acceso al SO habilitado, usa el gcloud compute project-info add-metadata comando para configurar enable-oslogin=TRUE y enable-oslogin-certificates=TRUE en los metadatos del proyecto:

gcloud compute project-info add-metadata \
    --metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE

Requiere certificados SSH en una sola VM que tenga habilitado el Acceso al SO

Para requerir certificados para todas las conexiones SSH a una sola VM que usa el Acceso al SO, usa la Google Cloud consola de o gcloud CLI.

Console

Para requerir certificados SSH para todas las conexiones a una sola VM, usa la Google Cloud consola para configurar enable-oslogin y enable-oslogin-certificates en TRUE en los metadatos de la instancia:

  1. Ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en el nombre de la VM para la que quieres requerir certificados SSH.

  3. Haz clic en Editar.

  4. En la sección Metadatos, haz clic en Agregar elemento.

    1. En el campo Clave, ingresa enable-oslogin.
    2. En el campo Valor, ingresa TRUE.
  5. Haz clic en Agregar elemento.

    1. En el campo Clave, ingresa enable-oslogin-certificates.
    2. En el campo Valor, ingresa TRUE.
  6. Haz clic en Guardar.

gcloud

Para requerir certificados SSH para todas las conexiones a una sola VM, usa el gcloud compute instances add-metadata comando para configurar enable-oslogin=TRUE y enable-oslogin-certificates=TRUE en los metadatos de la instancia:

gcloud compute instances add-metadata VM_NAME \
    --metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE

Reemplaza VM_NAME por el nombre de tu VM.

Conéctate a una VM con un certificado SSH

Después de configurar el Acceso al SO para que requiera certificados SSH, las conexiones SSH desde la Google Cloud consola de y gcloud CLI usan certificados SSH de forma predeterminada. Si no quieres configurar el Acceso al SO para que requiera certificados, pero quieres usar certificados para conectarte a las VMs, debes conectarte con herramientas de terceros.

Console

Para conectarte a las VMs mediante SSH en el navegador desde la Google Cloud consola, haz lo siguiente:

  1. En la Google Cloud consola de, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. En la lista de instancias de máquina virtual, haz clic en SSH en la fila de la instancia a la que deseas conectarte.

    Botón SSH junto al nombre de la instancia.

gcloud

Usa el gcloud beta compute ssh comando para conectarte a una VM con un certificado:

gcloud beta compute ssh VM_NAME

Reemplaza VM_NAME por el nombre de la VM a la que deseas conectarte.

Herramientas de terceros

Para usar un certificado SSH con un cliente SSH de terceros, haz lo siguiente:

  1. Crea una clave SSH si aún no tienes una.

  2. 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"
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID del proyecto que contiene la VM a la que deseas conectarte
    • LOCATION: la región en la que se encuentra la VM a la que deseas conectarte
    • PUBLIC_KEY: el contenido de tu archivo de clave pública SSH
    • COMPUTE_INSTANCE: la instancia de Compute Engine a la que se conectará, en el formato de projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID
    • SERVICE_ACCOUNT: la cuenta de servicio adjunta a la instancia. Borra este campo si la instancia no tiene una cuenta de servicio adjunta.
  3. Copia el certificado SSH del resultado del método projects.locations.signSshPublicKey y guarda el contenido en un archivo nuevo.

  4. Ejecuta el siguiente comando para configurar los permisos en el archivo del certificado SSH:

    sudo chmod 600 FILE_NAME
    

    Reemplaza FILE_NAME por el nombre del archivo.

  5. Conéctate a la VM con el siguiente comando:

    ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
    

    Reemplaza lo siguiente:

    • PATH_TO_PRIVATE_KEY: Es la ruta de acceso al archivo de clave SSH privada.
    • PATH_TO_SSH_CERTIFICATE: la ruta de acceso al archivo del certificado SSH.
    • USERNAME: tu nombre de usuario de Acceso al SO
    • EXTERNAL_IP: la dirección IP externa de la VM.

Soluciona problemas

Si no puedes conectarte a las VMs que configuraste para requerir certificados SSH, es posible que se deba a lo siguiente:

Próximos pasos