Zum Inhalt springen

🧩 GitHub con múltiples perfiles SSH: trabaja con varias cuentas sin enloquecer

¿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
  1. Copia el contenido
  2. Ve a GitHub personal > Settings > SSH and GPG keys
  3. Clic en „New SSH key“, pégala y guarda

En la cuenta del trabajo:

cat ~/.ssh/id_ed25519_work.pub
  1. 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert