Cómo conectar Git con GitHub paso a paso (guía completa)
Aprende paso a paso cómo conectar Git con GitHub, configurar claves SSH y gestionar múltiples cuentas de forma sencilla y segura.

Abre tu terminal y ejecuta el siguiente comando para generar una clave SSH específica para la cuenta de la empresa:
ssh-keygen -t rsa -b 4096 -C "<email-de-la-empresa@example.com>"
Proporciona un nombre único para la clave cuando se te solicite, por ejemplo:
/home/usuario/.ssh/id_rsa_usuario-github
Asegúrate de que las claves tienen permisos correctos SSH requiere que las claves privadas tengan permisos restringidos. Configúralos así:
chmod 600 \~/.ssh/ id_rsa_usuario-github
Añadir la nueva clave SSH al agente SSH
Activa el agente SSH ejecutando (Importante ejecutar el comando desde git bash):
eval "$(ssh-agent -s)"
Añade la clave recién generada al agente:
ssh-add ~/.ssh/id_rsa
Copiar la clave pública generada
Para copiar la clave pública, ejecuta:
cat ~/.ssh/id_rsa.pub
Configurar la clave pública en GitHub
-
Accede a tu cuenta de empresa en GitHub.
-
Ve a
Settings > SSH and GPG keys > New SSH key. -
Pega la clave pública copiada anteriormente en el campo correspondiente.
-
Guarda la configuración.
-
Verifica que tu clave está cargada en el agente SSH: Ejecuta el siguiente comando para asegurarte de que la clave está lista para usarse:
ssh-add -l
resultado: 4096
SHA256:CjBHfDFrhGDFDF56Emn7PDFts6k/l7Nr2QtbDFDFPrStDFDFDtYls
desarrollo@example.mx (RSA)
Prueba la conexión con GitHub: Asegúrate de que Git puede conectarse a GitHub con tu clave SSH. Usa el siguiente comando:
ssh -T git@github.com
cómo es la primera vez que de auténticas te aparecerá este mensaje debe de darle click en yes
The authenticity of host 'github.com (140.82.113.4)\' can\'t be
established.
ED25519 key fingerprint is
SHA256:+DiY3wvvV6TFDFhbpZisF/zLSFSFA0zPMSDFDFUvCOqUDFDF
This key is not known by any other names.
Are you sure you want to continue connecting
(yes/no/[fingerprint\])?yes
Unas ves que dado yes te proporcionara este mensaje de éxito
Hi Eduardo! You've successfully authenticated, but GitHub does not
provide shell access.
Ahora ya puedes clonar tu repositorio
Clonar el repositorio: Ahora puedes clonar el repositorio directamente usando el URL SSH del repositorio:
git clone git@github.com:usuario/nombre-repositorio.git
Configurar el archivo SSH config (OPCIONAL).
Como ahora se quiere tener más de una cuenta vinculada en nuestro git tenemos que configurar un archivo llamado config.
ssh-keygen -t ed25519 -C "personal" -f ~/.ssh/id_ed25519_personal
ssh-keygen -t ed25519 -C "work" -f ~/.ssh/id_ed25519_work
Para que Git sepa qué clave usar con cada cuenta, edita (o crea) el archivo:
~/.ssh/config
una vez abierto este archivo tienes que colocar lo siguiente:
#GitHub Personal
Host github.com-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
IdentitiesOnly yes
#GitHub Trabajo
Host github.com-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
Usa los alias en los remotos de tus repos:
git clone git@github.com-personal:usuario/repositorio-personal.git
git clone git@github.com-work:empresa/repositorio-trabajo.git
Detalles de cada configuración
Host github.com-personal y Host github.com-empresa:
-
Estas son identidades únicas o alias que creaste para tus cuentas.
-
github.com-personal: Es el alias para tu cuenta personal de GitHub.
-
github.com-empresa: Es el alias para la cuenta de la empresa en GitHub.
-
Puedes usar estos alias en comandos como ssh o git para conectar cada cuenta a GitHub.
HostName github.com:
-
Esto indica el servidor real con el que te estás conectando: GitHub.
-
Tanto la cuenta personal como la empresarial apuntan al mismo servidor.
User git:
- GitHub requiere que uses el usuario git para conexiones SSH. Este campo no cambia, sin importar si estás utilizando una cuenta personal o empresarial.
IdentityFile ~/.ssh/id_rsa y IdentityFile ~/.ssh/id_rsa_empresa:
-
Estas son las claves privadas que autentican cada cuenta.
-
~/.ssh/id_rsa: Clave SSH para tu cuenta personal.
-
~/.ssh/id_rsa_empresa: Clave SSH para la cuenta de la empresa.
-
Asegúrate de que ambas claves existan en la carpeta ~/.ssh.
Asegúrate de que el archivo tiene los permisos correctos
El archivo ~/.ssh/config debe tener permisos seguros para que SSH lo
utilice. Configura los permisos:
chmod 600 ~/.ssh/config
Final mente si quiere verifica si todas las claves fueron añadidas correctamente ejecuta el siguiente comando:
ssh-add -l
El resultado que obtedrias seria algo asi:
4096 SHA256:... /home/usuario/.ssh/id_rsa (RSA)
4096 SHA256:... /home/usuario/.ssh/id_rsa_empresa (RSA)
Pruebas para cada cuenta
Para probas que cada cuenta está vinculada de manera correcta ejecuta lo siguientes comando.
Probar la cuenta personal
Conéctate al alias github.com-personal para verificar que está funcionando correctamente:
ssh -T git@github.com-personal
Probar la cuenta empresarial
Conéctate al alias github.com-empresa para verificar la conexión:
ssh -T git@github.com-empresa
Resultados esperados
Si todo está bien, deberías ver un mensaje como:
Hi [username\]! You\'ve successfully authenticated, but GitHub does
not provide shell access.
Sin intentas clonar un repositorio y te sale este error.
git clone git@github.com:usuario347387/repositorio.git
git clone git@github.com:usuario347387/repositorio.git
Cloning into ' repositorio\'\...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Realiza lo siguiente
Activa el agente SSH ejecutando:
eval "$(ssh-agent -s)"
añade la clave rsa privada (asociada a la cuenta que te quiere conectar) de manera manual
ssh-add ~/.ssh/id_rsa
de nuevo intentas clonar el repositorio:
git clone git@github.com:usuario347387/repositorio.git
Cloning into 'proyecto'...
remote: Enumerating objects: 89, done.
remote: Counting objects: 100% (89/89), done.
remote: Compressing objects: 100% (55/55), done.
remote: Total 89 (delta 37), reused 70 (delta 18), pack-reused 0 (from 0)
Receiving objects: 100% (89/89), 66.95 KiB | 2.68 MiB/s, done.
Resolving deltas: 100% (37/37), done.
Listo!
Problema bloqueo de puerto 22
git push origin main
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Solucion:
Conecta mediante https
git remote set-url origin https://github.com/Eduardo/proyecto.git
Sube los cambios
git push origin main
info: please complete authentication in your browser...
Enumerating objects: 83, done.
Counting objects: 100% (83/83), done.
Delta compression using up to 12 threads
Compressing objects: 100% (43/43), done.
Writing objects: 100% (45/45), 6.86 KiB | 260.00 KiB/s, done.
Total 45 (delta 32), reused 1 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (32/32), completed with 27 local
objects.
To https://github.com/Eduardo/proyecto.git
dab71af..5daa74a main -> main
About Eduardo Hernandez
Desarrollador Web Full-Stack con experiencia en la creación de aplicaciones modernas, rápidas y escalables. Especializado en JavaScript, TypeScript, React, Next.js, Node.js y bases de datos SQL, con un enfoque en rendimiento, seguridad y buenas prácticas de desarrollo.


