Solución al error de conexión agotada al hacer git push

Cómo resolver el error ssh: connect to host github.com port 22: Connection timed out al subir código a GitHub

Al trabajar con Git y intentar enviar cambios a GitHub, ocasionalmente podemos encontrarnos con un error similar a este:

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.

A continuación se presentan las causas más frecuentes de este problema y las对应的 soluciones disponibles.

Diagnóstico del problema

  1. Restricciones de red:
  • La conexión a Internet puede ser inestable o el proveedor de servicios puede estar bloqueando el puerto SSH estándar (22).
  1. Políticas de firewall:
  • Las redes corporativas, académicas o institucionales frecuentemente implementan restricciones que impiden conexiones SSH al puerto 22 de servidores externos como GitHub.
  1. Acceso limitado a los servidores de GitHub:
  • Aunque es poco común, los servidores de GitHub pueden experimentar interrupciones temporales o restricciones de acceso.
  1. Configuración SSH incorrecta:
  • El archivo de configuración local de SSH puede tener opciones mal definidas, o las claves SSH no están correctamente registradas en la cuenta de GitHub.

Métodos de solución

1. Verificar la conectividad de red

  • Cambiar de red: Probar con una conexión diferente, como datos móviles o una red doméstica alternativa, para descartar problemas del proveedor actual.
  • Prueba de conectividad: Ejecutar ping github.com para confirmar si existe comunicación básica con el servidor.

2. Modificar el puerto de conexión SSH

  • Utilizar el puerto 443 en lugar del 22: Cuando el firewall bloquea el puerto SSH estándar, podemos configurar la conexión para usar el puerto 443, que generalmente permanece abierto.

Procedimiento:

  1. Abrir o crear el archivo ~/.ssh/config:``` nano ~/.ssh/config
2. Insertar la siguiente configuración:```
Host github.com
  Hostname ssh.github.com
  Port 443


  1. Guardar los cambios y cerrar el editor.

3. Validar la configuración de SSH

  • Comprobar conexión: Ejecutar el siguiente comando para verificar que SSH puede establecer comunicación con GitHub:``` ssh -T git@github.com

Si aparece un mensaje similar a `Hi username! You've successfully authenticated, but GitHub does not provide shell access.`, la configuración está funcionando correctamente.

#### 4. Revisar las claves SSH

- **Crear una nueva clave** (si es necesario):```
ssh-keygen -t ed25519 -C "correo@ejemplo.com"


  • Registrar la clave pública en GitHub:
  1. Mostrar el contenido de la clave pública:``` cat ~/.ssh/id_ed25519.pub
2. Acceder a GitHub, ir a `Settings > SSH and GPG keys`, seleccionar **New SSH Key**, pegar la clave y guardar.

#### 5. Alternativa con protocolo HTTPS

- Si los problemas con SSH persisten, podemos cambiar temporalmente a HTTPS:```
git remote set-url origin https://github.com/usuario/nombre-repositorio.git


En este caso, será necesario utilizar un token de acceso personal de GitHub en lugar de la contraseña al realizar operaciones de push o pull.

Consideraciones finales

Cuando aparece el error ssh: connect to host github.com port 22: Connection timed out al ejecutar git push, lo más habitual es que la causa sea alguna restricción de red o una configuración incorrecta de SSH. Las estrategias descritas anteriormente—cambiar el puerto de conexión, verificar la configuración de SSH o cambiar a HTTPS—suelen resolver eficazmente estos problemas.

Etiquetas: Git GitHub SSH linux control-de-versiones

Publicado el 7-24 14:59