ssh: conectarse al host github.com puerto 22: se agotó el tiempo de espera de la conexión


174

Estoy bajo un proxy y estoy presionando para git con éxito durante bastante tiempo.
Ahora no puedo empujar a git de repente.
He configurado la clave RSA y el proxy y los verifiqué dos veces, sin resultado y git me está arrojando el error que se muestra en el título de la página.


66
Cree un punto de acceso en su dispositivo móvil, conéctese a través de su dispositivo móvil y luego git push. Trabajó para mi.
zundi


1
El mismo problema me sucedió en el Reino Unido con Virgin Media. Traté de empujar / tirar a GitHub a través de ssh en casa y no tuve suerte, pero en el trabajo estuvo bien. Entonces me di cuenta de que tenía problemas con mi ISP. La solución simple para mí fue usar Cloudflare DNS en 1.1.1.1lugar de uno predeterminado, por eso @zundi tiene éxito a través de un punto de acceso móvil.
Vladyslav Krylasov

Respuestas:


254

El motivo podría ser la modificación del cortafuegos, ya que se encuentra bajo una red. (En cuyo caso, pueden bloquear deliberadamente algunos puertos)
Para verificar si este es el motivo ...

ssh -T git@github.com

Esto debería expirar. Si ese es el caso, use el protocolo http en lugar de ssh de esta manera,
simplemente cambie su url en el archivo de configuración a http.
Aquí es cómo :-

git config --local -e

cambiar la entrada de

 url = git@github.com:username/repo.git

a

url = https://github.com/username/repo.git

66
Tuve ese problema una vez, pero reiniciar mi computadora lo resolvió.
Kevin Lee

3
fatal: no se puede acceder a ' gitlab.com : ******. git /': el número de puerto terminó con 'f'
Fakher

Tuve que eliminar el .git de la url para que esto funcione para mí. url = github.com/username/repo
Jesse Buss

44
usar https en su lugar para ssh no es la solución correcta. Debe haber una manera de configurar el proxy en git config y en la configuración de ssh para resolver esto.
shijin

66
Virgin Media UK tiene un modo seguro para niños, que tuve que desactivar.
Finlay Percy

178

Para mi caso, ninguna de las soluciones sugeridas funcionó, así que traté de solucionarlo yo mismo y lo resolví.

Para mí, recibo este error en mi instancia de AWS EC2 UBUNTU, lo que hice para resolverlo fue editar la configuración ssh (o agregarla si no existe).

sudo nano ~/.ssh/config

Y agregué lo siguiente

Host github.com
 Hostname ssh.github.com
 Port 443

Luego, ejecuta el comando ssh -T git@github.com para confirmar si el problema está solucionado.

De acuerdo a esto

A veces, los firewalls se niegan a permitir conexiones SSH por completo. Si el uso de la clonación HTTPS con el almacenamiento en caché de credenciales no es una opción, puede intentar clonar usando una conexión SSH realizada a través del puerto HTTPS. La mayoría de las reglas de firewall deberían permitir esto, pero los servidores proxy pueden interferir

Espero que esto ayude a cualquier otra persona que tenga el mismo problema que yo.


3
Esta solución funcionó bien para mí, aunque no resolvió el problema para GitLab. En ese caso, tenga en cuenta que GitLab.com ejecuta un segundo servidor SSH que escucha en el puerto 443 de uso común, que es poco probable que tenga firewall. Todo lo que tiene que hacer es editar su ~/.ssh/configy cambiar la forma en que se conecta a GitLab.com. En ese caso, vea este artículo: about.gitlab.com/2016/02/18/…
lucascavalcante

1
Hola, tuve el mismo problema, mi enrutador es de NET y él bloquea el puerto 22. Esa configuración resolvió mi problema definitivamente
Pedro Soares

No es gitconfig sino sshconfig
GuyT

1
Después de horas de encontrar respuestas ... eres CHAMP, de todos modos, ¿por qué necesitamos cambiar github.com a ssh.github.com? Todavía no lo entiendo
Robert Tirta

45

Reescritura básica de URL

Git proporciona una forma de reescribir URL usando git config. Simplemente emita el siguiente comando:

git config --global url."https://".insteadOf git://

Ahora, como por arte de magia, todos los comandos git realizarán una sustitución de git://ahttps://

fuente: git: // protocolo bloqueado por la compañía, ¿cómo puedo evitar eso?


1
¡Gracias! La nuestra fue durante la compilación de Jenkins, por lo que no pude editar manualmente el archivo git (no tengo las credenciales de git para la cuenta de jenkins), por lo que esto fue muy útil.
Phil

1
Esto es genial. He agregado alias git para que cada uno cambie fácilmente
lfender6445

17
En cuanto a github, el comando debe ser: git config --global url."https://github.com/".insteadOf git@github.com:. Note las diferencias: se @vuelve //y se :vuelve /.
Frodon

20

dentro de la carpeta .ssh Crear archivo "config"

Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

Host gitlab.com
Hostname altssh.gitlab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

1
Consulte la respuesta de Mahan_F para obtener una explicación detallada de por qué sucede esto.
refaelio

1
Esto es lo único que me funcionó en GitLab. Gracias Isaque!
awwsmm

5

Solución rápida: intente cambiar a una red diferente

Experimenté este problema mientras estaba en un punto de acceso (conexión 3 / 4G). Cambiar a una conexión diferente (WiFi) lo resolvió, pero es solo una solución alternativa: no tuve la oportunidad de llegar al fondo del problema, por lo que las otras respuestas podrían ser más interesantes para determinar el problema subyacente


Cambié del WiFi al 4G y funcionó. Yo tampoco entiendo.
Adam Casey

4

Me enfrenté al mismo problema y no pude encontrar una solución que funcionara. Enfrenté este problema al configurar un servidor local y el git no se pudo conectar a través de mi red proxy, pero mi estación de trabajo sí. Este fue el resultado cuando ejecuté el comando ssh -vT git@github.com

ubuntu@server:~$ ssh -vT git@github.com
OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/ubuntu/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to github.com [13.234.176.102] port 22.

Así que intenté usar una conexión SSH hecha a través del puerto HTTPS editando el archivo de configuración ~/.ssh/configpero fue en vano.

Host github.com
 Hostname ssh.github.com
 Port 443

Finalmente, encontré este artículo que resolvió y expuso el verdadero problema.

# github.com
Host github.com
    Hostname ssh.github.com
    ProxyCommand nc -X connect -x <PROXY-HOST>:<PORT> %h %p
    Port 443
    ServerAliveInterval 20
    User git

Este es mi archivo de configuración y ahora git funciona perfectamente bien a través de ssh.


3

Ejecutar:

nc -v -z <git-repository> <port>

Su salida debería verse así:

"Connection to <git-repository> <port> port [tcp/*] succeeded!"

Si lo consigues:

connect to <git-repository> <port> (tcp) failed: Connection timed out

Necesita editar su archivo ~ / .ssh / config. Agregue algo como lo siguiente:

Host example.com
Port 1234

55
No estoy seguro de que todos se hayan ncinstalado. ¿Qué se supone que es? Netcat o algo así?
Hack-R

2

Estaba teniendo este mismo problema, pero la respuesta que encontré fue diferente, pensé que alguien podría encontrar este problema, así que aquí está mi solución.

Tenía que la lista blanca 2 IPs de puerto 22, 80, 443, y 9418:

  • 192.30.252.0/22

  • 185.199.108.0/22

En caso de que estas IP no funcionen, puede ser porque se actualizaron, puede encontrar las más recientes en esta página .


0

La respuesta anterior me dio la información necesaria para resolver este problema. En mi caso, la url comenzaba incorrectamente con ssh: ///

Para verificar que la url en su configuración de git sea correcta, abra el archivo de configuración de git: -

git config --local -e

Verifique la entrada de la URL. NO debería tener ssh: /// al comienzo.

Entrada incorrecta

 url = ssh:///git@github.com:username/repo.git

Entrada correcta:

 url = git@github.com:username/repo.git

Si su URL es correcta, entonces el siguiente paso sería probar la respuesta anterior que sugiere cambiar el protocolo a http.


0

Cuando accidentalmente cambié a una red wifi para invitados , recibí este error. Tuve que volver a mi red wifi predeterminada .


0

Tuve este problema durante 2 horas y resulta que elimino la "s" de https y simplemente hago:

git clone -b <branchName> http:<projecturl>

Arreglado.


Por favor, cierre esta pregunta etiquetándola como respondida
Clément

0

PROBLEMA: Paso para generar el problema: git clone git@github.com: sramachand71 / test.git por primera vez en el nuevo ERROR del portátil ssh: conéctese al host github.com puerto 22: Tiempo de espera de conexión fatal: no se pudo leer desde el control remoto repositorio.

Asegúrese de tener los derechos de acceso correctos y de que exista el repositorio. SOLUCIÓN por primera vez en el sistema para clonar necesitamos dar comillas dobles para el comando clonar. $ git clone "git@github.com: sramachand71 / test.git" Me enfrento a este problema en el sistema incluso después de que todo fue correcto, pero noté al fin que la comilla doble es obligatoria para la url "repository_url.git" por primera vez o para un nuevo usuario en el sistema.


0

Cambiar la URL del repositorio de ssh a https no es muy significativo para mí. Como yo prefiero sshmás httpsa causa de algún tipo de beneficios adicionales que no desea descartar. Las respuestas anteriores son bastante buenas y precisas. Si enfrenta este problema en GitLab, vaya a su página de documentación oficial y cambie su archivo de configuración de esa manera.

Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab

0

Reiniciar la computadora lo resolvió para mí.
Versión de Git: 2.27.0.windows.1
Versión del sistema operativo: Windows 10 v1909

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.