tutorial
Desarrollo web
Git

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.

September 1, 2025
8 min read
Cómo conectar Git con GitHub paso a paso (guía completa)

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

  1. Accede a tu cuenta de empresa en GitHub.

  2. Ve a Settings > SSH and GPG keys > New SSH key.

  3. Pega la clave pública copiada anteriormente en el campo correspondiente.

  4. Guarda la configuración.

  5. 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
Share this article:
Tags:
Desarrollo web
Git
EH

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.

Related Articles

Cómo reducir tu huella de carbono en el día a día
tutorial

Cómo reducir tu huella de carbono en el día a día

Pequeños cambios que puedes hacer en tu rutina diaria para ayudar al planeta.

June 15, 2025
5 min read
Guía Completa: Laravel 11 con Registro/Login y MongoDB 6.0 LTS
tutorial

Guía Completa: Laravel 11 con Registro/Login y MongoDB 6.0 LTS

Aprende a integrar MongoDB 6.0 LTS con Laravel 11 para implementar registro y login, y mejores prácticas de arquitectura.

September 10, 2025
20 min read
Instalar una fuente en Next.js
tutorial

Instalar una fuente en Next.js

Aprende cómo instalar y configurar una fuente personalizada en Next.js paso a paso, mejorando el diseño y la experiencia visual de tu aplicación.

September 10, 2025
6 min read