¿Tienes una cuenta personal y otra de trabajo en GitHub y necesitas cambiar entre ellas? ¿Te ha pasado que haces git push
y GitHub te dice que no tienes permiso? 😖
En este post te enseño cómo configurar múltiples identidades SSH para que puedas trabajar con varias cuentas sin conflictos.
🎯 ¿Por qué usar múltiples perfiles?
- Separar claramente tu trabajo profesional del personal
- Evitar errores de permisos o commits con el autor equivocado
- Conectar diferentes llaves SSH a diferentes cuentas de GitHub
📁 Paso 1: Crea múltiples claves SSH
Primero, generamos una llave para tu cuenta personal:
ssh-keygen -t ed25519 -C "tu-email-personal@example.com" -f ~/.ssh/id_ed25519_personal
Luego una llave para tu cuenta de trabajo:
ssh-keygen -t ed25519 -C "tu-email-trabajo@empresa.com" -f ~/.ssh/id_ed25519_work
Esto generará:
~/.ssh/id_ed25519_personal
~/.ssh/id_ed25519_personal.pub
~/.ssh/id_ed25519_work
~/.ssh/id_ed25519_work.pub
💻 Paso 2: Agrega ambas llaves al agente SSH
Primero, aseguramos que el agente esté activo:
eval "$(ssh-agent -s)"
Ahora agrega ambas llaves:
ssh-add ~/.ssh/id_ed25519_personal
ssh-add ~/.ssh/id_ed25519_work
🔐 Paso 3: Agrega tus claves públicas a GitHub
En la cuenta personal:
cat ~/.ssh/id_ed25519_personal.pub
- Copia el contenido
- Ve a GitHub personal > Settings > SSH and GPG keys
- Clic en „New SSH key“, pégala y guarda
En la cuenta del trabajo:
cat ~/.ssh/id_ed25519_work.pub
- Repite los mismos pasos anteriores, pero en tu cuenta corporativa
⚙️ Paso 4: Configura el archivo ~/.ssh/config
Este archivo permite que Git sepa qué llave usar para cada „perfil“.
code ~/.ssh/config
Agrega lo siguiente:
# Perfil personal
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
IdentitiesOnly yes
# Perfil trabajo
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
🧪 Paso 5: Prueba cada conexión
Personal:
ssh -T github-personal
Trabajo:
ssh -T github-work
Deberías ver respuestas como:
Hi tu_usuario! You've successfully authenticated, but GitHub does not provide shell access.
🧭 Paso 6: Clona tus repos con el host personalizado
Repos de tu cuenta personal:
git clone github-personal:tu_usuario/mi-proyecto.git
Repos de tu trabajo:
git clone github-work:empresa/proyecto-interno.git
Esto le dice a Git qué perfil usar (basado en tu alias github-work
o github-personal
).
🛠️ Extra: cambiar el origin
si ya tienes el repo
¿Ya clonaste con HTTPS o el host incorrecto? No hay problema:
git remote set-url origin github-work:empresa/proyecto.git
🧼 Consejo adicional: configurar tu nombre y email por repo
Para evitar que tus commits de trabajo aparezcan con tu correo personal, puedes configurar esto por proyecto:
git config user.name "Tu Nombre"
git config user.email "tu-email@empresa.com"
✅ Conclusión
Con esta configuración multiperfil, puedes manejar sin problemas tus cuentas personales y laborales desde una sola máquina. Nada de desconectarte, cerrar sesión o cometer con el autor equivocado.
📌 Resumen rápido
Acción | Comando o ruta |
---|---|
Crear claves | ssh-keygen -f ~/.ssh/id_ed25519_X |
Agregar al agente | ssh-add ~/.ssh/id_ed25519_X |
Agregar a GitHub | Copia .pub y ve a Settings > SSH Keys
|
Configurar .ssh/config
|
Define alias como github-work y github-personal
|
Clonar | git clone github-work:org/repo.git |
Cambiar origin
|
git remote set-url origin github-work:org/repo.git |