← Back to list

Configuración de Múltiples Llaves GPG y SSH para Diferentes Usuarios y Proyectos en macOS/Linux

Cuando trabajas en entornos donde interactúas con múltiples repositorios, como proyectos personales y de tu empresa, necesitas configurar…

Kaldt Tech · 2025-01-13 05:03 · 0 claps · 2.3 min read
#gpg-and-ssh-keys #git-configuration #linux-and-macos #secure-version-control #cross-platform-dev
Open on Medium ↗
Wiki topics: 🔓 · Open Source

Configuración de Múltiples Llaves GPG y SSH para Diferentes Usuarios y Proyectos en macOS/Linux

Cuando trabajas en entornos donde interactúas con múltiples repositorios, como proyectos personales y de tu empresa, necesitas configurar diferentes llaves GPG y SSH para cada uno. En esta guía, te mostraré cómo lograrlo paso a paso en macOS, asegurando que cada usuario y repositorio esté correctamente vinculado con sus credenciales únicas.

Generación de Llaves GPG

Paso 1: Crear una nueva llave GPG

Ejecuta el comando:

gpg --full-gen-key

Durante el proceso, responde las siguientes preguntas considerando las recomendaciones:

  • Tipo de llave: Elige RSA and RSA (opción 1). Esta opción es la más segura y ampliamente soportada para firmar y cifrar.
  • Tamaño de la llave: Ingresa 4096 para mayor seguridad.
  • Fecha de expiración: Recomiendo 1y (1 año). Esto obliga a renovar las llaves regularmente.
  • Nombre y correo: Introduce tu nombre y correo asociados al repositorio o proyecto.
  • Comentario: Escribe un identificador significativo, por ejemplo, Trabajo GitHub o Personal.
  • Passphrase: Usa una contraseña de al menos 20 caracteres y guárdala en un gestor de contraseñas.

Resultado esperado

Deberías obtener algo como esto:

pub   rsa4096 2025-01-13 [SC] [expires: 2026-01-13]
      AC12D9F1628B2ED0
uid                      Nombre Usuario (Comentario) <email@ejemplo.com>
sub   rsa4096 2025-01-13 [E] [expires: 2026-01-13]

Guarda el ID de la llave, por ejemplo: AC12D9F1628B2ED0.

Exportar y Registrar Llave GPG

Exportar la llave pública

Ejecuta:

gpg --armor --export AC12D9F1628B2ED0

Copia el bloque completo, incluyendo las líneas BEGIN y END. Ejemplo:

-----BEGIN PGP PUBLIC KEY BLOCK-----
...
-----END PGP PUBLIC KEY BLOCK-----

Agregar la llave GPG a plataformas como GitLab

  1. Inicia sesión en GitLab.
  2. Ve a Editar perfil > Llaves GPG > Agregar nueva clave.
  3. Pega el bloque copiado.
  4. Guarda la llave.

Configuración de ~/.gitconfig

Edita tu archivo global de configuración de Git:

vim ~/.gitconfig

Agrega las siguientes líneas:

[commit]
  gpgsign = true
[user]
  useConfigOnly = true
[includeIf "gitdir:/Users/tu_usuario/ruta/proyecto/"]
  path = ~/.gitconfig.nombre-proyecto

Notas:

  • Sustituye /Users/tu_usuario/ruta/proyecto/ por la ruta al repositorio, incluyendo / al final. Esto asegura que la configuración se aplique sólo a ese directorio.
  • Cambia nombre-proyecto por un nombre descriptivo, como lambda.

Crea el archivo específico para el proyecto:

vim ~/.gitconfig.nombre-proyecto

Incluye lo siguiente:

[user]
  name = Nombre Usuario
  email = email@ejemplo.com
  signingKey = AC12D9F1628B2ED0
[url "git@github-proyecto.com"]
  insteadOf = git@github.com

Sustituye:

  • **Nombre Usuario y `email@ejemplo.com`** con los datos del usuario.
  • **AC12D9F1628B2ED0** con el ID de la llave GPG.
  • **git@github-proyecto.com** con un alias representativo del proyecto.

Generación de Llaves SSH

Crear una nueva llave SSH

Ejecuta:

ssh-keygen -t rsa -b 4096 -C "Comentario"

Sigue las instrucciones:

  • Ruta para guardar: Por ejemplo, /Users/tu_usuario/.ssh/proyecto_id_rsa.
  • Passphrase: Usa una contraseña robusta y guárdala en un gestor de contraseñas.

Exportar la llave SSH

Para registrar la llave en plataformas como GitLab:

  • Ejecuta:
cat ~/.ssh/proyecto_id_rsa.pub
  • Copia el contenido completo.
  • Ve a Editar perfil > Llaves SSH > Agregar nueva clave en GitLab.
  • Pega la llave pública y guarda.

Configuración de ~/.ssh/config

Edita el archivo de configuración SSH:

vim ~/.ssh/config

Agrega:

### -- PROYECTO -- 
Host gitlab-proyecto.com
  Hostname gitlab.com
  User git
  IdentityFile ~/.ssh/proyecto_id_rsa
### -- GENERAL --
Host *
  AddKeysToAgent yes
  IdentitiesOnly yes
  PreferredAuthentications publickey
  Compression yes

Sustituye:

  • **gitlab-proyecto.com** con el alias definido.
  • **~/.ssh/proyecto_id_rsa** con la ruta a tu llave SSH.

Inicializar el Repositorio

Si es un nuevo proyecto:

  • Inicializa Git:
git init
  • Configura el repositorio remoto:
git remote add origin git@github.com:proyecto.git
  • Realiza tu primer commit:
git add -A 
git commit -S -m "Initial commit"
  • Sube los cambios:
git push origin main

Conclusión

Esta guía te permite gestionar múltiples llaves GPG y SSH para diferentes usuarios y proyectos en macOS. Con una configuración personalizada y segura, puedes trabajar eficientemente en múltiples entornos sin mezclar credenciales. 🚀


메타데이터
post_id
32cb87a0d14e
slug
configuración-de-múltiples-llaves-gpg-y-ssh-para-diferentes-usuarios-y-proyectos-en-macos-linux-32cb87a0d14e
url
https://medium.com/@serpadeg/configuraci%C3%B3n-de-m%C3%BAltiples-llaves-gpg-y-ssh-para-diferentes-usuarios-y-proyectos-en-macos-linux-32cb87a0d14e
canonical_url
https://medium.com/@serpadeg/configuraci%C3%B3n-de-m%C3%BAltiples-llaves-gpg-y-ssh-para-diferentes-usuarios-y-proyectos-en-macos-linux-32cb87a0d14e
author_url
https://medium.com/@serpadeg
status
ok
fetched_at
2026-07-15 08:48:20