Cómo Configurar Múltiples Cuentas de GitHub con SSH en una Máquina Local
Diferencias entre SSH y HTTPS
Seguridad
HTTPS envía IDs y tokens (contraseñas) a través de SSL/TLS. Aunque es seguro, fundamentalmente, todavía están expuestos en la ruta de la red, aunque bien envueltos.
SSH utiliza un método de claves asimétricas (infraestructura de clave pública). Hay una clave privada y una clave pública; la clave privada permanece solo en tu computadora y nunca se expone a la red. Es estructuralmente más seguro que HTTPS.
Para usar una analogía: si HTTPS es una puerta muy resistente, SSH es no tener ninguna puerta. Si no hay puerta, no hay forma de entrar.
Sin embargo, incluso SSH no es 100% seguro. No existe tal cosa como 100% de seguridad en TI.
Conveniencia
Con HTTPS, tienes la molestia de iniciar/cerrar sesión en GitHub al confirmar cambios (commit) con diferentes cuentas.
Con SSH, si escribes las etiquetas correctamente en el archivo de configuración, puedes usar libremente múltiples cuentas sin cerrar sesión.
Configuración de SSH en GitHub
1. Generar Claves SSH (Separar por Cuenta)
Genera claves especificando claramente la ruta y el nombre del archivo para que no se mezclen con las claves existentes.
# Para Cuenta A (especificar ruta y nombre de archivo)
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_github_A
# Para Cuenta B
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_github_BNota: Puedes presionar Enter para omitir la frase de contraseña (Passphrase) o incluir una. Si se incluye, te preguntará cada vez que hagas git push (se puede automatizar para preguntar una vez mediante configuración).
2. Escribir Archivo de Configuración SSH
Dile a la computadora qué llave (IdentityFile) sacar dependiendo de la dirección de conexión (Host).
# Abrir archivo de configuración
vim ~/.ssh/config# Ingresa el siguiente contenido (Establece el nombre del Host con un alias conveniente)
# Configuración Cuenta A
Host github.com-A
HostName github.com
User git
IdentityFile ~/.ssh/id_github_A
# Configuración Cuenta B
Host github-B
HostName github.com
User git
IdentityFile ~/.ssh/id_github_B3. Registrar Clave Pública en GitHub
Pega el contenido de la clave pública (.pub) en la página de configuración de cada cuenta (Settings > SSH and GPG keys).
# Copia el contenido de salida y regístralo en cada cuenta
cat ~/.ssh/id_github_A.pub
cat ~/.ssh/id_github_B.pub
Precaución: ¡Debes darle a GitHub el contenido que está en .pub! El que no tiene .pub es tu clave privada.
4. Configuración de Dirección Remote (Núcleo)
Al conectar a un repositorio, debes usar el alias del Host establecido en Config en lugar de github.com.
- Método existente:
[email protected]:User/repo.git - Método de múltiples cuentas:
git@[HostAlias]:User/repo.git
# Ejemplo: Al conectar con la Cuenta B
git remote set-url origin git@github-B:UserB/repo-name.gitLog
- • 2026-01-20: create