Autentica con claves públicas SSH

Los usuarios y las cuentas de servicio pueden usar claves públicas SSH para autenticarse en los repositorios de Secure Source Manager. En esta página, se describe cómo generar un par de claves SSH y, luego, agregarlo como método de autenticación en la interfaz web de Secure Source Manager.

Secure Source Manager admite los tipos de claves SSH RSA, ECDSA y Ed25519.

Roles requeridos

Para obtener los permisos que necesitas para autenticarte con claves públicas SSH, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para autenticarse con claves públicas SSH. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para autenticarse con claves públicas SSH:

  • securesourcemanager.sshkeys.createAny en la instancia de Secure Source Manager
  • Para asignar una clave SSH a una cuenta de servicio, haz lo siguiente: iam.serviceAccounts.actAs en la cuenta de servicio

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Para obtener información sobre cómo otorgar roles de Secure Source Manager, consulta Control de acceso con IAM y Cómo otorgar acceso a la instancia a los usuarios.

Genera un par de claves

Un par de claves SSH consta de una clave privada que reside en tu sistema local y una clave pública que registras en Google Cloud.

Linux o macOS

  1. Instala OpenSSH en tu sistema local.

  2. En el símbolo del sistema, ingresa el siguiente comando:

    ssh-keygen -t [KEY_TYPE] -C "[USER_EMAIL]"
    

    Donde:

    • [USER_EMAIL] es tu dirección de correo electrónico.
    • [KEY_TYPE]: Es uno de rsa, ecdsa o ed25519.

    Por ejemplo:

    ssh-keygen -t rsa -C "user@example.com"
    
    1. Cuando se te solicite, ingresa una ubicación y un nombre de archivo para el archivo de clave pública. Para aceptar la ubicación y el nombre de archivo predeterminados, presiona Intro.

    2. Cuando se te solicite, deja la frase de contraseña en blanco y presiona Intro.

Windows

  1. Instala PuTTY en tu sistema local.

  2. Inicia PuTTYGen desde el menú Inicio de Windows.

  3. En la ventana que se abre, selecciona el tipo de clave en el campo Parameters.

  4. Haz clic en Generate.

    PuTTYGen muestra la string de clave pública generada.

  5. Cuando se te solicite, deja la frase de contraseña en blanco y presiona Intro.

  6. Para guardar el par de claves que generaste en tu sistema local, haz clic en Save public key y Save private key.

Agrega claves SSH para los usuarios

  1. En la interfaz web de Secure Source Manager, en la página de la instancia o el repositorio, haz clic en el menú más opciones.
  2. Haz clic en User SSH keys.

    Se abrirá la página Claves SSH del usuario, en la que se mostrará una lista de las claves existentes que hayas creado.

  3. En la página Claves SSH del usuario, haz clic en Agregar clave.

  4. En la página Agregar clave SSH, ingresa los siguientes valores para tu clave:

    1. Título: Agrega un título descriptivo para la clave.
    2. Clave pública SSH: Pega la cadena de tu clave pública. Para obtener tu cadena de clave pública, ejecuta el siguiente comando:
    cat ~/.ssh/FILENAME.pub
    

    En el ejemplo anterior, FILENAME es el nombre que le asignaste al archivo de claves.

Puedes usar claves SSH para autenticarte en cualquier repositorio de Secure Source Manager, siempre que tengas los permisos necesarios en ese repositorio.

Agrega claves SSH para cuentas de servicio

Para permitir el acceso programático a tu repositorio, puedes agregar una clave SSH para una cuenta de servicio.

  1. Si aún no tienes una cuenta de servicio que quieras usar, crea una.
  2. En la interfaz web de Secure Source Manager, haz clic en el menú más opciones.
  3. Haz clic en Llaves SSH de cuentas de servicio. Se abrirá la página Claves SSH de la cuenta de servicio, en la que se mostrará una lista de las claves existentes que agregaste.
  4. En la página Claves SSH de la cuenta de servicio, haz clic en Agregar clave.
  5. En la página Agregar clave SSH de la cuenta de servicio, ingresa los siguientes valores para tu clave:

    1. Título: Un título descriptivo para la clave
    2. Cuenta de servicio: Es el correo electrónico de la cuenta de servicio que deseas usar con la clave SSH en el formato SA_NAME@PROJECT_ID.iam.gserviceaccount.com.

      Dónde

      • SA_NAME es el nombre de la cuenta de servicio.
      • PROJECT_ID es el ID del proyecto en el que se creó la cuenta de servicio.
    3. Clave pública SSH: Tu clave pública SSH. Consulta Genera un par de claves para obtener información sobre cómo generar un par de claves SSH.

  6. Si la cuenta de servicio no está en el mismo proyecto que tu instancia de Secure Source Manager, otorga al agente de servicio de Secure Source Manager uno de los siguientes roles o permisos en la cuenta de servicio que deseas usar:

    • Permiso iam.serviceAccounts.signJwt
    • Rol de creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator)

    Ejecuta el siguiente comando para agregar una política de IAM a tu cuenta de servicio de Secure Source Manager y otorgarle el rol de Creador de tokens de cuenta de servicio.

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \
        --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \
        --role="roles/iam.serviceAccountTokenCreator"
    

    Aquí, SERVICE_ACCOUNT es la cuenta de servicio que deseas usar y INSTANCE_PROJECT_NUMBER es el número de proyecto de tu instancia de Secure Source Manager.

    El SERVICE_ACCOUNT debe tener el formato de un ID numérico de cuenta de servicio o de un correo electrónico, como 123456789876543212345 o my-iam-account@somedomain.com.

¿Qué sigue?