- Регистрация
- 1 Мар 2015
- Сообщения
- 1,481
- Баллы
- 155
¿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?
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
cat ~/.ssh/id_ed25519_work.pub
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
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
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
cat ~/.ssh/id_ed25519_work.pub
- Repite los mismos pasos anteriores, pero en tu cuenta corporativa
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"
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 |