Introducción
Para gestionar varias cuentas de Git en un mismo sistema, como una cuenta personal y otra corporativa, es necesario configurar claves SSH separadas y establecer identidades distintas para cada repositorio. Esta guía explica cómo lograrlo de manera efectiva.
Generación de claves SSH para diferentes proveedores
Inicie una terminal como Git Bash y genere pares de claves RSA o ED25519 para cada servicio. Ejemplo para una cuenta de Gitee:
ssh-keygen -t rsa -C 'correo_personal@ejemplo.com' -f ~/.ssh/id_rsa_cuenta_personal
Para una cuenta de GitLab corporativa, use un nombre de archivo distinto:
ssh-keygen -t ed25519 -C 'correo_corporativo@empresa.com' -f ~/.ssh/id_rsa_cuenta_corporativa
Las claves se guardarán en la carpeta ~/.ssh (por ejemplo, en Windows: C:\Users\usuario\.ssh). Añada las claves públicas correspondientes a las cuentas en los respectivos proveedores.
Cnofiguración del archivo SSH config
Cree un archivo de configuración en la carpeta ~/.ssh para definir reglas por host. Use un editor de texto para crear el archivo config sin extensión:
Host servidor_personal.com
HostName servidor_personal.com
IdentityFile ~/.ssh/id_rsa_cuenta_personal
PreferredAuthentications publickey
User usuario_personal
Host servidor_corporativo.com
HostName servidor_corporativo.com
IdentityFile ~/.ssh/id_rsa_cuenta_corporativa
PreferredAuthentications publickey
User usuario_corporativo
Ajuste los valores según sus necesidades. Esto asegura que cada conexión use la clave correcta.
Verificación de la conexión SSH
Pruebe la autenticación con cada servidor usando comandos como:
ssh -T git@servidor_personal.com
ssh -T git@servidor_corporativo.com
Si aparece un mensaje de confirmación, escriba 'yes' y presione Enter. Un mensaje de bienvenida indica éxito.
Configuración de identidad por repositorio
Tras establecer la configuración SSH, defina el nombre de usuario y correo local para cada repositorio. Esto anula la configuración global de Git. Navegue a la carpeta del repositorio y ejecute:
git config user.name 'NombreParaEsteRepo'
git config user.email 'correo_para_este_repo@ejemplo.com'
Esto se aplicará solo al repositorio actual, permitiendo usar diferentes identidades en proyectos distintos.