En este post exploraremos cómo configurar múltiples cuentas de GitHub en una misma máquina local utilizando SSH, lo cual es útil cuando trabajamos con proyectos personales y de trabajo, o cuando temos diferentes cuentas para distintos proyectos. La idea es utilizar diferentes claves SSH para cada cuenta, sin necesidad de tener que ingresar credenciales constantemente.
Generar claves SSH para cada cuenta de GitHub
Cuando trabajamos con múltiples cuentas, cada cuenta debe tener su propia clave SSH. Vamos a generar una clave SSH nueva para la segunda cuenta de GitHub.
Usaremos el siguiente comando para generar una nueva clave SSH para tu segunda cuenta:
ssh-keygen -t ed25519 -C "Clave para mi segunda cuenta"
Debemos elegir un nombre para el archivo de la clave. Guardamos nuestra clave con un nombre distintivo, como id_ed25519_segunda_cuenta
, para evitar sobrescribir la clave SSH existente.
Agregar la clave SSH a GitHub
Ahora, debemos agregar la clave pública generada a nuestra cuenta de GitHub.
Copiamos el contenido de la clave pública:
cat ~/.ssh/id_ed25519_segunda_cuenta.pub
Debemos ir a GitHub y en la sección Settings > SSH and GPG keys selecciona New SSH Key, y pegamos el contenido de la clave pública. Añadimos un nombre descriptivo, como "Segunda cuenta de trabajo".
Configurar el archivo ~/.ssh/config
El siguiente paso es crear o editar el archivo ~/.ssh/config
, que permite gestionar diferentes claves SSH para diferentes hosts. Este archivo le dice a Git cuál clave usar dependiendo de la cuenta de GitHub con la que
estemos interactuando.
Editamos el archivo de configuración:
nano ~/.ssh/config
Agregamos las siguientes configuraciones:
# Cuenta personal (la cuenta por defecto)
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
# Cuenta secundaria (trabajo u otros proyectos)
Host github-pruebas
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_segunda_cuenta
Configurar las URL remotas de los repositorios
Ahora que tenemos el archivo ~/.ssh/config
configurado, debes asegurarnos de que los repositorios usen el alias correcto para cada cuenta.
Si estamos trabajando con nuestra cuenta personal, no necesitamos hacer nada especial. Sin embargo, para los repositorios de nuestra segunda cuenta, debemos actualizar la URL remota de los repositorios para usar el alias que configuramos en el archivo SSH.
Para cambiar la URL remota de un repositorio usamos:
git remote set-url origin git@github-pruebas:usuario/repositorio.git
Debemos reemplazar usuario
y repositorio
con los valores correspondientes.
Verificar la configuración SSH
Es importante que verifiquemos que GitHub nos reconoce correctamente al usar las diferentes claves SSH. Podemos hacer esto con los siguientes comandos:
Para nuestra cuenta personal:
ssh -T git@github.com
Y para nuestra segunda cuenta:
ssh -T git@github-pruebas
Si todo está bien configurado, deberíamos ver un mensaje que diga algo como:
Hi usuario! You've successfully authenticated, but GitHub does not provide shell access.
Realizar un Push o Pull con la cuenta correcta
Una vez que todo esté configurado, podemos realizar un push
o pull
de nuestros repositorios como lo haríamos normalmente. Git usará la clave correcta para la cuenta asociada con cada repositorio.