Los usuarios y las cuentas de servicio pueden usar claves públicas SSH para autenticarse en repositorios de Secure Source Manager. En esta página se describe cómo generar un par de claves SSH y, a continuación, añadirlo 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 obligatorios
Para obtener los permisos que necesitas para autenticarte con claves públicas SSH, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Para añadir una clave SSH a un usuario, sigue estos pasos:
Accessor de instancia de Secure Source Manager (
roles/securesourcemanager.instanceAccessor) en la instancia de Secure Source Manager -
Para añadir una clave SSH a una cuenta de servicio, sigue estos pasos:
-
Gestor de instancias de Secure Source Manager (
roles/securesourcemanager.instanceManager) en la instancia de Secure Source Manager -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser) en la cuenta de servicio
-
Gestor de instancias de Secure Source Manager (
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para autenticarte mediante claves públicas SSH. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para autenticarte con claves públicas SSH, necesitas los siguientes permisos:
-
en la instancia de Secure Source Managersecuresourcemanager.sshkeys.createAny -
Para asignar una clave SSH a una cuenta de servicio, sigue estos pasos:
en la cuenta de servicioiam.serviceAccounts.actAs
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Para obtener información sobre cómo conceder roles de Secure Source Manager, consulta los artículos Control de acceso con gestión de identidades y accesos y Conceder acceso a instancias a los usuarios.
Generar un par de claves
Un par de claves SSH consta de una clave privada que se aloja en tu sistema local y una clave pública que registras en Google Cloud.
Linux o macOS
Instala OpenSSH en tu sistema local.
En el símbolo del sistema, introduce el siguiente comando:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"Donde:
- Tu dirección de correo es USER_EMAIL.
- KEY_TYPE puede ser
rsa,ecdsaoed25519.
Por ejemplo:
ssh-keygen -t rsa -C "user@example.com"Cuando se te solicite, introduce 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, pulsa Intro.
Cuando se te solicite, deja la contraseña vacía y pulsa Intro.
Windows
Si no lo tienes, instala el cliente OpenSSH (incluido en Windows 10 y versiones posteriores) y Git para Windows en tu sistema local. En las siguientes instrucciones se usan OpenSSH y Git para Windows.
En PowerShell o en el símbolo del sistema, ejecuta el siguiente comando:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"Donde:
- Tu dirección de correo es USER_EMAIL.
- KEY_TYPE puede ser
rsa,ecdsaoed25519.
Por ejemplo:
ssh-keygen -t rsa -C "user@example.com"Cuando se te solicite, introduce 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 (`%USERPROFILE%.ssh`), pulse Intro.
Cuando se te solicite, deja la contraseña vacía y pulsa Intro.
Añadir una clave SSH al agente SSH
Para usar el par de claves SSH que has generado, añade tu clave al agente SSH. Si no guardaste la clave en la ubicación predeterminada, añadirla al agente SSH ayudará a SSH a localizarla.
Linux o macOS
Para iniciar
ssh-agenten segundo plano, haz lo siguiente:eval "$(ssh-agent -s)"El comando devuelve el ID de proceso del agente (PID). Por ejemplo:
Agent pid 3245Según tu entorno, es posible que tengas que usar otro comando. Por ejemplo:
- Para usar el acceso de administrador, ejecuta
sudo -s -Hantes de iniciarssh-agent. - Para ejecutar
ssh-agentdirectamente, usaexec ssh-agent bashoexec ssh-agent zsh.
- Para usar el acceso de administrador, ejecuta
Añade tu clave privada SSH a
ssh-agent.ssh-add ~/.ssh/FILENAMEDonde
FILENAMEes el nombre del archivo de tu clave privada, por ejemplo,id_rsaoid_ed25519.
Windows
Empieza
ssh-agent.Si usas Git Bash, inicia
ssh-agent:eval "$(ssh-agent -s)"Si usas PowerShell o el símbolo del sistema, inicia el servicio
ssh-agent. En PowerShell, ejecuta lo siguiente:Set-Service ssh-agent -StartupType Automatic; Start-Service ssh-agent
Añade tu clave privada SSH a
ssh-agent.Si usas Git Bash:
ssh-add ~/.ssh/FILENAMESi usas PowerShell o la línea de comandos:
ssh-add $env:USERPROFILE\.ssh\FILENAME
Donde
FILENAMEes el nombre del archivo de tu clave privada, por ejemplo,id_rsaoid_ed25519.
Añadir claves SSH para usuarios
- En la interfaz web de Secure Source Manager, en la página de la instancia o del repositorio, haz clic en el menú Más opciones.
Haz clic en Claves SSH de usuario.
Se abre la página Claves SSH de usuario y se muestra una lista de las claves que hayas creado.
En la página Claves SSH de usuario, haz clic en Añadir clave.
En la página Añadir clave SSH, introduce los siguientes valores para tu clave:
- Título: añade un título descriptivo para la clave.
Clave pública SSH: pega la cadena de tu clave pública. Para obtener la cadena de tu clave pública, abre el archivo de clave pública (
FILENAME.pub) en un editor de texto o ejecuta uno de los siguientes comandos:Linux o macOS
cat ~/.ssh/FILENAME.pubWindows
cat $env:USERPROFILE\.ssh\FILENAME.pubSustituye
FILENAMEpor el nombre de tu 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.
Añadir claves SSH para cuentas de servicio
Para permitir el acceso programático a tu repositorio, puedes añadir una clave SSH para una cuenta de servicio.
- Si aún no tienes una cuenta de servicio que quieras usar, crea una.
- En la interfaz web de Secure Source Manager, haz clic en el menú más opciones.
- Haz clic en Claves SSH de cuenta de servicio. Se abrirá la página Claves SSH de cuenta de servicio y se mostrará una lista de las claves que hayas añadido.
- En la página Claves SSH de la cuenta de servicio, haz clic en Añadir clave.
En la página Añadir clave SSH de cuenta de servicio, introduce los siguientes valores de tu clave:
- Título: un título descriptivo de la clave
Cuenta de servicio: el correo de la cuenta de servicio que quieras usar con la clave SSH. El formato es el siguiente:
SA_NAME@PROJECT_ID.iam.gserviceaccount.comDónde
SA_NAMEes el nombre de la cuenta de servicio.PROJECT_IDes el ID del proyecto en el que se creó la cuenta de servicio.
Clave pública SSH: tu clave pública SSH. Consulta Generar un par de claves para obtener información sobre cómo generar un par de claves SSH.
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 quieras usar:
- Permiso de
iam.serviceAccounts.signJwt - Rol Creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator)
Ejecuta el siguiente comando para añadir una política de gestión de identidades y accesos a tu cuenta de servicio de Gestor de fuentes seguras y asignarle el rol 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"Donde SERVICE_ACCOUNT es la cuenta de servicio que quieres 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 de cuenta de servicio numérico o de un correo electrónico, como este: 123456789876543212345 o mi-cuenta-iam@algundominio.com.
- Permiso de