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
-
Cuenta personal GitHub:
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519_github_personalReemplaza
[email protected]por tu email real. -
Cuenta trabajo GitHub:
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519_github_work -
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
-
Repo personal GitHub:
git clone [email protected]:username/repository.git -
Repo trabajo GitHub:
git clone [email protected]:username/repository.git -
Repo trabajo GitLab:
git clone [email protected]:username/repository.git
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