Utilizar varias claves Github o Gitlab en una misma máquina en linux, ubuntu, debian, wsl, o Mac

Tiempo de lectura: 2 minutos

Si tienes varias claves SSH para diferentes cuentas de GitHub (por ejemplo, personal y de trabajo), puedes configurarlas fácilmente creando un archivo de configuración SSH específico para diferenciarlas. Aquí te dejo los pasos:

Key - Pexels

1. Asegúrate de Tener Varias Claves SSH

Primero, verifica que tienes más de una clave SSH en tu carpeta ~/.ssh:

ls ~/.ssh

Ejemplo:

  • id_ed25519_personal y id_ed25519_personal.pub (clave para tu cuenta personal).
  • id_ed25519_work y id_ed25519_work.pub (clave para tu cuenta de trabajo).

Si no tienes las claves, genera una nueva para cada cuenta con un nombre diferente:

ssh-keygen -t ed25519 -C "email-personal@example.com" -f ~/.ssh/id_ed25519_personal
ssh-keygen -t ed25519 -C "email-trabajo@example.com" -f ~/.ssh/id_ed25519_work

2. Añade Ambas Claves al Agente SSH

Carga las claves necesarias en el agente SSH:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_personal
ssh-add ~/.ssh/id_ed25519_work

3. Configura el Archivo ~/.ssh/config

Edita (o crea) el archivo de configuración en ~/.ssh/config para asociar cada clave a un alias diferente:

# Clave para cuenta personal
Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal

# Clave para cuenta de trabajo
Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work

4. Actualiza la URL de los Repositorios

Ahora, debes actualizar las URLs de tus repositorios para usar los alias definidos en el archivo de configuración.

Para tu cuenta personal:

git remote set-url origin git@github-personal:usuario-personal/repositorio.git

Para tu cuenta de trabajo:

git remote set-url origin git@github-work:usuario-trabajo/repositorio.git

Puedes verificar la URL del repositorio con:

git remote -v

5. Prueba la Configuración

Intenta conectarte con cada clave:

ssh -T github-personal
ssh -T github-work

Deberías ver un mensaje de éxito similar a:

Hi usuario-personal! You've successfully authenticated, but GitHub does not provide shell access.
Hi usuario-trabajo! You've successfully authenticated, but GitHub does not provide shell access.

6. Realiza Operaciones con Git

Con la configuración lista, puedes usar git pull, git push, etc., para los diferentes repositorios según la clave asignada.

Deja un comentario