Seleccionar página

¿Trabajas con más de una cuenta en Bitbucket (o GitHub) y te estás volviendo loco al clonar, hacer push o pull desde el mismo ordenador?

Aquí te explico paso a paso cómo configurarlo correctamente usando claves SSH, sin interferencias, sin errores de permisos y con una estructura clara y replicable.


✅ 1. Genera una clave SSH para cada cuenta

Desde tu terminal:

# Clave para la primera cuenta
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_user1 -C "correo_user1@dominio.com"

# Clave para la segunda cuenta
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_user2 -C "correo_user2@dominio.com"

Deja la passphrase vacía (o pon una si deseas más seguridad).

Esto genera dos archivos por usuario:

  • Clave privada: ~/.ssh/id_ed25519_userX
  • Clave pública: ~/.ssh/id_ed25519_userX.pub

✅ 2. Añade cada clave pública a la cuenta correspondiente

Bitbucket:

cat ~/.ssh/id_ed25519_user1.pub
pbcopy < .ssh/id_ed25519_user1.pub

Y pégalo. Repite para el segundo usuario con su clave.

GitHub (si aplica):

  • Ve a Settings > SSH and GPG keys
  • Añade la clave igual que en Bitbucket.

✅ 3. Configura el archivo ~/.ssh/config

Edita o crea el archivo de configuración SSH:

nano ~/.ssh/config

Y añade:

# Cuenta Bitbucket usuario1
Host bitbucket.org-user1
  HostName bitbucket.org
  User git
  IdentityFile ~/.ssh/id_ed25519_user1
  IdentitiesOnly yes

# Cuenta Bitbucket usuario2
Host bitbucket.org-user2
  HostName bitbucket.org
  User git
  IdentityFile ~/.ssh/id_ed25519_user2
  IdentitiesOnly yes

Para GitHub, cambia bitbucket.org por github.com en cada caso.


✅ 4. Añade las claves al agente SSH

Ejecuta:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_user1
ssh-add ~/.ssh/id_ed25519_user2

Verifica:

ssh-add -l

✅ 5. Prueba la conexión por separado

Comprueba que todo funciona correctamente:

ssh -T git@bitbucket.org-user1
# Esperas ver: "logged in as usuario1"

ssh -T git@bitbucket.org-user2
# Esperas ver: "logged in as usuario2"

✅ 6. Clona y gestiona tus repositorios

Cuando clones un repo, usa la forma personalizada del host:

git clone git@bitbucket.org-user1:usuario1/mi-repo.git

Y para el segundo:

git clone git@bitbucket.org-user2:usuario2/otro-repo.git

⚠️ Es importante que uses bitbucket.org-userX tal como está definido en ~/.ssh/config, no el host por defecto.


🔄 7. Cambiar el origin en un repositorio existente

Si ya tenías el repo y quieres cambiar la clave con la que se conecta:

git remote set-url origin git@bitbucket.org-user2:usuario2/otro-repo.git

Verifica:

git remote -v

🔍 Cómo ver y revisar tu configuración

  • Ver claves activas: ssh-add -l
  • Ver configuración actual del repo: git remote -v
  • Ver archivo de configuración SSH: cat ~/.ssh/config

❓ Preguntas frecuentes

¿Puedo tener más de 2 usuarios?

Sí, puedes tener tantos como quieras. Solo asegúrate de:

  • Generar una clave diferente por usuario.
  • Crear un Host personalizado para cada uno en ~/.ssh/config.

¿Y si me pide contraseña al hacer git push?

Es probable que estés usando el host bitbucket.org en lugar de bitbucket.org-userX. Cambia el remote con el comando:

git remote set-url origin git@bitbucket.org-userX:usuarioX/repo.git

¿Puedo hacer esto también con GitHub o GitLab?

¡Sí! Solo cambia bitbucket.org por github.com o gitlab.com en la configuración.


🚀 Conclusión

Trabajar con varias cuentas de Git no tiene por qué ser un dolor de cabeza. Usando claves SSH bien organizadas y hosts personalizados, puedes mantener separadas tus identidades y trabajar cómodamente con múltiples proyectos y organizaciones.


¿Quieres el documento ya en Google Docs, con estilos y formato? Solo dime y te lo genero directamente.