ssh: connettersi all'host github.com porta 22: timeout della connessione


174

Sono sotto una delega e sto spingendo a git con successo per un bel po '.
Ora non sono in grado di spingere all'improvviso all'improvviso.
Ho impostato la chiave RSA e il proxy e li ho ricontrollati, senza alcun risultato e git mi sta lanciando l'errore mostrato nel titolo della pagina.


6
Crea un hotspot sul tuo dispositivo mobile, connettiti tramite il tuo dispositivo mobile, quindi git push. Ha funzionato per me.
zundi,


1
Lo stesso problema mi è successo nel Regno Unito con Virgin Media. Ho provato a spingere / tirare su GitHub via ssh a casa e senza fortuna ma al lavoro andava bene. Quindi mi sono reso conto di avere problemi con il mio ISP. La semplice soluzione per me era usare Cloudflare DNS 1.1.1.1anziché uno predefinito, ecco perché @zundi riesce attraverso un hotspot mobile.
Vladyslav Krylasov il

Risposte:


254

Il motivo potrebbe essere la modifica del firewall quando ci si trova in una rete (nel qual caso potrebbero bloccare deliberatamente alcune porte)
Per ricontrollare se questo è il motivo ...

ssh -T git@github.com

questo dovrebbe scadere. In tal caso, utilizza il protocollo http anziché ssh in questo modo,
modifica il tuo URL nel file di configurazione in http.
Ecco come: -

git config --local -e

cambia voce di

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

per

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

6
Ho avuto quel problema una volta, ma il riavvio del mio computer lo ha risolto.
Kevin Lee,

3
fatale: impossibile accedere a ' gitlab.com : ******. git /': il numero di porta è terminato con 'f'
Fakher,

Ho dovuto rimuovere .git dall'URL per farlo funzionare per me. url = github.com/username/repo
Jesse Buss

4
usare https invece per ssh non è la soluzione giusta. Ci deve essere un modo per impostare il proxy in git config e nelle impostazioni ssh per risolverlo.
shijin,

6
Virgin Media UK ha una modalità sicura per i bambini, che ho dovuto disabilitare.
Finlay Percy,

178

Nel mio caso nessuna delle soluzioni suggerite ha funzionato, quindi ho cercato di risolverlo da solo e l'ho risolto.

Per me sto ricevendo questo errore sulla mia istanza di AWS EC2 UBUNTU, quello che ho fatto per risolverlo è stato modificare la configurazione ssh (o aggiungerla se non esiste).

sudo nano ~/.ssh/config

E ho aggiunto quanto segue

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

Quindi, esegui il comando ssh -T git@github.comper confermare se il problema è stato risolto.

Secondo questo

A volte, i firewall si rifiutano di consentire interamente le connessioni SSH. Se l'utilizzo della clonazione HTTPS con la memorizzazione nella cache delle credenziali non è un'opzione, è possibile tentare di clonare utilizzando una connessione SSH stabilita sulla porta HTTPS. La maggior parte delle regole del firewall dovrebbe consentire ciò, ma i server proxy possono interferire

Spero che questo aiuti chiunque altro abbia lo stesso problema che ho fatto io.


3
Questa soluzione ha funzionato bene per me, anche se non ha risolto il problema per GitLab. In tal caso, tieni presente che GitLab.com esegue un secondo server SSH in ascolto sulla porta 443 di uso comune, che è improbabile che sia protetta da firewall. Tutto quello che devi fare è modificare il tuo ~/.ssh/confige cambiare il modo in cui ti connetti a GitLab.com. In tal caso, vedi questo articolo: about.gitlab.com/2016/02/18/…
lucascavalcante

1
Ciao, ho avuto lo stesso problema, il mio router proviene da NET e lui blocca la porta 22. Questa configurazione ha risolto definitivamente il mio problema
Pedro Soares,

Non è gitconfigurazione ma sshconfigurazione
GuyT

1
Dopo ore di ricerca di risposte ... sei CHAMP, comunque perché dobbiamo cambiare github.com in ssh.github.com? Ancora non capisco
Robert Tirta,

45

Riscrittura URL di base

Git fornisce un modo per riscrivere gli URL usando git config. Emetti semplicemente il seguente comando:

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

Ora, come per magia, tutti i comandi Git si esibiranno una sostituzione di git://ahttps://

fonte: git: // protocollo bloccato dall'azienda, come posso aggirarlo?


1
Grazie! La nostra era durante la compilazione di Jenkins, quindi non ho potuto modificare manualmente il file git (non ho le credenziali git per l'account jenkins), quindi è stato molto utile.
Phil

1
Questo è fantastico Ho aggiunto gli alias git per
consentire

17
Per quanto riguarda GitHub, il comando dovrebbe essere: git config --global url."https://github.com/".insteadOf git@github.com:. Nota le differenze: @diventa //e :diventa /.
Frodon,

20

all'interno della cartella .ssh Creare il file "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
Vedi la risposta Mahan_F per una spiegazione dettagliata del perché ciò accada.
refaelio,

1
Questa è l'unica cosa che ha funzionato per me su GitLab. Grazie, Isaque!
awwsmm

5

Soluzione rapida: prova a passare a una rete diversa

Ho riscontrato questo problema su un hotspot (connessione 3 / 4G). Il passaggio a una diversa connessione (WiFi) lo ha risolto, ma è solo una soluzione alternativa - non ho avuto la possibilità di arrivare alla fine del problema, quindi le altre risposte potrebbero essere più interessanti per determinare il problema sottostante


Sono passato dal WiFi al 4G e ha funzionato. Neanche io capisco.
Adam Casey,

4

Ho affrontato lo stesso problema e non sono riuscito a trovare una soluzione funzionante. Ho riscontrato questo problema durante la configurazione di un server locale e git non è riuscito a connettersi attraverso la mia rete proxy ma la mia workstation potrebbe farlo. Questo è stato l'output quando ho eseguito il 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.

Quindi ho provato a utilizzare una connessione SSH effettuata tramite la porta HTTPS modificando il file di configurazione ~/.ssh/configma senza risultati.

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

Alla fine, ho trovato questo articolo che ha risolto ed esposto il vero 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

Questo è il mio file di configurazione e ora git funziona perfettamente con ssh!


3

Eseguire:

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

Il tuo output dovrebbe apparire come:

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

Se ottieni:

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

Devi modificare il tuo file ~ / .ssh / config. Aggiungi qualcosa di simile al seguente:

Host example.com
Port 1234

5
Non sono sicuro che tutti avranno ncinstallato. Cosa dovrebbe essere? Netcat o qualcosa del genere?
Hack-R

2

Avevo lo stesso problema, ma la risposta che ho trovato era diversa, pensavo che qualcuno potesse imbattersi in questo problema, quindi ecco la mia soluzione.

Ho dovuto whitelist 2 IP per la porta 22, 80, 443, e 9418:

  • 192.30.252.0/22

  • 185.199.108.0/22

Nel caso in cui questi IP non funzionino, potrebbe essere perché sono stati aggiornati, puoi trovare quelli più recenti su questa pagina .


0

La risposta sopra mi ha dato le informazioni necessarie per risolvere questo problema. Nel mio caso, l'URL non iniziava correttamente con ssh: ///

Per verificare che l'URL nella tua configurazione di git sia corretto, apri il file di configurazione di git: -

git config --local -e

Controlla la voce dell'URL. NON dovrebbe avere ssh: /// all'inizio.

Voce errata:

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

Ingresso corretto:

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

Se l'URL è corretto, il passaggio successivo sarebbe provare la risposta sopra che suggerisce di cambiare il protocollo in http.


0

Quando sono passato accidentalmente a una rete wifi ospite ho ricevuto questo errore. Ho dovuto tornare alla mia rete wifi predefinita .


0

Ho avuto questo problema per 2 ore e si è scoperto rimuovendo la "s" da https e basta:

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

Aggiustato.


Chiudi questa domanda taggandola come risposta
Clément,

0

PROBLEMA: Passaggio per produrre il problema: clone git git@github.com: sramachand71 / test.git per la prima volta nel nuovo laptop ERRORE ssh: connettersi all'host github.com porta 22: timeout della connessione fatale: impossibile leggere dal remoto repository.

Assicurarsi di disporre dei diritti di accesso corretti e che il repository esista. SOLUZIONE per la prima volta nel sistema per clonare dobbiamo dare virgolette doppie per il comando clone. $ git clone "git@github.com: sramachand71 / test.git" Devo affrontare questo problema nel sistema anche dopo che tutto è stato corretto ma alla fine ho notato che è necessario un doppio preventivo per l'URL "repository_url.git" per la prima volta o per il nuovo utente nel sistema.


0

Cambiare l'URL repo da ssh a https non è molto significativo per me. Come preferisco ssha httpscausa di una sorta di vantaggi extra che non voglio scartare. Le risposte sopra sono abbastanza buone e accurate. Se riscontri questo problema in GitLab, vai alla pagina della documentazione ufficiale e modifica il file di configurazione in questo modo.

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

0

Riavvia il computer risolto per me.
Versione Git: 2.27.0.windows.1
Versione del sistema operativo: Windows 10 v1909

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.