The full Astro logo.

Cuando trabajas con varias cuentas Git (por ejemplo, personal y trabajo en GitHub/GitLab), gestionar llaves SSH diferentes puede ser confuso. Esta guia te muestra como configurarlo correctamente.

Explicacion del problema

Necesitas usar distintas llaves SSH segun el repositorio o proveedor. Sin configuracion, Git no sabe cual llave usar para cada cuenta.

Resumen de la solucion

La solucion es crear una llave por cuenta y configurar aliases en ~/.ssh/config para que cada host use su llave correspondiente.

Paso a paso

Paso 1: Genera llaves SSH diferentes

  1. Cuenta personal GitHub:

    ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519_github_personal

    Reemplaza [email protected] por tu email real.

  2. Cuenta trabajo GitHub:

    ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519_github_work
  3. Cuenta trabajo GitLab:

    ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519_gitlab_work

Paso 2: Agrega las llaves a cada cuenta

Sube cada llave publica (.pub) al proveedor correcto (GitHub o GitLab).

Paso 3: Configura ~/.ssh/config

Edita o crea ~/.ssh/config con este contenido:

# Personal GitHub Account
Host github.com-personal
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_ed25519_github_personal
   IdentitiesOnly yes

# Work GitHub Account
Host github.com-work
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_ed25519_github_work
   IdentitiesOnly yes

# Work GitLab Account
Host gitlab.com-work
   HostName gitlab.com
   User git
   IdentityFile ~/.ssh/id_ed25519_gitlab_work
   IdentitiesOnly yes

Paso 4: Clona usando aliases

Reemplaza username/repository.git por el repositorio real.

Paso 5: Verifica la configuracion

ssh -T [email protected]
ssh -T [email protected]
ssh -T [email protected]

Si todo esta bien, podras autenticarte con la llave correcta en cada alias.

Happy reading! ☕

Comments