Introducción
Al trabajar con varios repositorios en plataformas como GitHub, GitLab o Bitbucket, es común necesitar configurar múltiples identidades en una misma máquina. Esto implica gestionar claves SSH y ajustes de usuario específicos para cada servicio.
Proceso de configuración
Primero, asegúrate de tener Git instalado. En sistemas Windows, puedes descargarlo desde el sitio oficial de Git y usar Git Bash para ejecutar comandos.
Generación de claves SSH
Crea pares de claves públicas y privadas para cada cuenta. Utiliza el directorio ~/.ssh (o C:\Users\TuUsuario\.ssh en Windows) para almacenarlas.
# Clave para GitHub
ssh-keygen -t ed25519 -C "tu_correo@ejemplo.com" -f clave_github
# Clave para GitLab
ssh-keygen -t ed25519 -C "otro_correo@ejemplo.com" -f clave_gitlab
# Clave para Bitbucket
ssh-keygen -t ed25519 -C "correo_tercero@ejemplo.com" -f clave_bitbucket
Registro de claves públicas en repositorios
Accede a la configuración de SSH en cada plataforma (por ejemplo, en GitHub ve a Settings > SSH and GPG keys) y añade el contenido de los archivos .pub generados.
Creación del archivo de configuración SSH
En el mismo directorio ~/.ssh, crea un archivo llamado config con el siguiente contenido para definir alias y parámetros de conexión:
# Configuración para GitHub
Host mi_github
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/clave_github
User usuario_github
# Configuración para GitLab
Host mi_gitlab
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/clave_gitlab
User usuario_gitlab
# Configuración para Bitbucket
Host mi_bitbucket
HostName bitbucket.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/clave_bitbucket
User usuario_bitbucket
Cada sección define un alias (Host) para facilitar el acceso, junto con la ruta de la clave privada y el nombre de usuario.
Verificación de conexiones
Prueba la autenticación con los alias definidos:
ssh -T mi_github
ssh -T mi_gitlab
ssh -T mi_bitbucket
Si la configuración es correcta, recibirás un mensaje de éxito como ¡Hola, usuario! Has sido autenticado....
Clonación de repositorios usando alias
Al clonar proyectos, utiliza los alias en lugar de los nombres de host completos:
git clone git@mi_github:tu_usuario/proyecto.git
git clone git@mi_gitlab:tu_usuario/otro_proyecto.git
Ajuste de credenciales locales
Para evitar conflictos, deshabilita la configuración global de usuario y establece valores específicos por repositorio:
# Eliminar configuración global
git config --global --unset user.name
git config --global --unset user.email
# En el directorio de cada proyecto
cd proyecto
git config user.name "nombre_para_github"
git config user.email "tu_correo@ejemplo.com"
cd ../otro_proyecto
git config user.name "nombre_para_gitlab"
git config user.email "otro_correo@ejemplo.com"
Esto asegura que cada repositorio use las credenciales adecuadas al hacer commits y operaciones remotas.