ssh: Verbindung zum Host herstellen github.com Port 22: Zeitüberschreitung der Verbindung


174

Ich stehe unter einem Proxy und dränge mich für eine ganze Weile dazu, erfolgreich zu spielen.
Jetzt bin ich nicht in der Lage, plötzlich in git zu drängen.
Ich habe den RSA-Schlüssel und den Proxy festgelegt und sie ohne Erfolg überprüft, und Git gibt mir den im Titel der Seite angezeigten Fehler.


6
Erstellen Sie einen Hotspot auf Ihrem Mobilgerät, stellen Sie dann eine Verbindung über Ihr Mobilgerät her git push. Hat für mich gearbeitet.
Zundi


1
Das gleiche Problem ist mir in Großbritannien mit Virgin Media passiert. Ich habe zu Hause versucht, über ssh auf GitHub zu schieben / zu ziehen, und kein Glück, aber bei der Arbeit war alles in Ordnung. Also stellte ich fest, dass ich Probleme mit meinem ISP hatte. Die einfache Lösung für mich war, Cloudflare DNS 1.1.1.1anstelle eines Standard- DNS zu verwenden, weshalb @zundi über einen mobilen Hotspot erfolgreich ist.
Vladyslav Krylasov

Antworten:


254

Der Grund könnte die Änderung der Firewall sein, da Sie sich in einem Netzwerk befinden. (In diesem Fall blockieren sie möglicherweise absichtlich einige Ports.)
Um zu überprüfen, ob dies der Grund ist, tun Sie dies

ssh -T git@github.com

Dies sollte eine Zeitüberschreitung sein. Wenn dies der Fall ist, verwenden Sie auf diese Weise das http-Protokoll anstelle von ssh.
Ändern Sie einfach Ihre URL in der Konfigurationsdatei in http.
Hier ist, wie :-

git config --local -e

Eintrag von ändern

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

zu

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

6
Ich hatte dieses Problem einmal, aber ein Neustart meines Computers löste es.
Kevin Lee

3
fatal: Zugriff auf ' gitlab.com nicht möglich : ******. git /': Portnummer endete mit 'f'
Fakher

Ich musste das .git aus der URL entfernen, damit dies für mich funktioniert. url = github.com/username/repo
Jesse Buss

4
Die Verwendung von https anstelle von ssh ist nicht die richtige Lösung. Es muss eine Möglichkeit geben, den Proxy in der Git-Konfiguration und in den SSH-Einstellungen festzulegen, um dies zu lösen.
Shijin

5
Virgin Media UK hat einen kindersicheren Modus, den ich deaktivieren musste.
Finlay Percy

178

In meinem Fall hat keine der vorgeschlagenen Lösungen funktioniert, daher habe ich versucht, das Problem selbst zu beheben, und es wurde behoben.

Für mich wird dieser Fehler auf meiner AWS EC2 UBUNTU-Instanz angezeigt. Um dies zu beheben, habe ich die ssh-Konfiguration bearbeitet (oder hinzugefügt, wenn sie nicht vorhanden ist).

sudo nano ~/.ssh/config

Und ich habe folgendes hinzugefügt

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

Führen Sie dann den Befehl aus ssh -T git@github.com, um zu bestätigen, ob das Problem behoben ist.

Nach dieser

Manchmal lehnen Firewalls es ab, SSH-Verbindungen vollständig zuzulassen. Wenn die Verwendung des HTTPS-Klonens mit Caching von Anmeldeinformationen nicht möglich ist, können Sie versuchen, über eine über den HTTPS-Port hergestellte SSH-Verbindung zu klonen. Die meisten Firewall-Regeln sollten dies zulassen, aber Proxyserver können Interferenzen verursachen

Hoffentlich hilft dies allen anderen, die das gleiche Problem haben wie ich.


3
Diese Lösung hat für mich gut funktioniert, obwohl sie das Problem für GitLab nicht gelöst hat. Beachten Sie in diesem Fall, dass GitLab.com einen zweiten SSH-Server ausführt, der den häufig verwendeten Port 443 überwacht, der wahrscheinlich nicht durch eine Firewall geschützt ist. Alles, was Sie tun müssen, ist Ihre zu bearbeiten ~/.ssh/configund die Art und Weise zu ändern, wie Sie sich mit GitLab.com verbinden. In diesem Fall lesen
lucascavalcante

1
Hallo, ich hatte das gleiche Problem, mein Router ist von NET und er blockiert den 22-Port. Diese Konfiguration hat mein Problem definitiv gelöst
Pedro Soares

Es ist nicht gitconfig, sondern sshconfig
GuyT

1
Nach stundenlangem Finden von Antworten ... Sie sind CHAMP, warum müssen wir github.com überhaupt in ssh.github.com ändern? Ich verstehe es immer noch nicht
Robert Tirta

45

Grundlegendes Umschreiben von URLs

Git bietet eine Möglichkeit, URLs mit git config neu zu schreiben. Geben Sie einfach den folgenden Befehl ein:

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

Jetzt führen alle Git-Befehle wie durch Zauberei eine Ersetzung von git://to durchhttps://

source: git: // Protokoll von Firma blockiert, wie kann ich das umgehen?


1
Vielen Dank! Unsere war während des Jenkins-Builds, daher konnte ich die Git-Datei nicht manuell bearbeiten (ich habe keine Git-Anmeldeinformationen für das Jenkins-Konto) - das war also sehr nützlich.
Phil

1
Das ist toll. Ich habe Git-Aliase für jeden hinzugefügt, um einfach zu wechseln
lfender6445

17
In Bezug auf Github sollte der Befehl lauten : git config --global url."https://github.com/".insteadOf git@github.com:. Beachten Sie die Unterschiede: @wird //und :wird /.
Frodon

20

im .ssh-Ordner Erstellen Sie die "config" -Datei

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
In der Antwort von Mahan_F finden Sie eine detaillierte Erklärung, warum dies geschieht.
Refaelio

1
Dies ist das einzige, was bei GitLab für mich funktioniert hat. Danke, Isaque!
awwsmm

5

Schnelle Problemumgehung: Wechseln Sie zu einem anderen Netzwerk

Ich habe dieses Problem an einem Hotspot (3 / 4G-Verbindung) festgestellt. Der Wechsel zu einer anderen Verbindung (WiFi) hat das Problem behoben, aber es ist nur eine Problemumgehung. Ich hatte keine Chance, dem Problem auf den Grund zu gehen, sodass die anderen Antworten möglicherweise interessanter sind, um das zugrunde liegende Problem zu ermitteln


Ich wechselte vom WiFi zum 4G und es funktionierte. Ich verstehe auch nicht.
Adam Casey

4

Ich hatte das gleiche Problem und konnte keine funktionierende Lösung finden. Beim Einrichten eines lokalen Servers trat dieses Problem auf, und der Git konnte keine Verbindung über mein Proxy-Netzwerk herstellen, meine Workstation jedoch. Dies war die Ausgabe, als ich den Befehl ausführte 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.

Also habe ich versucht, eine SSH-Verbindung über den HTTPS-Port zu verwenden, indem ich die Konfigurationsdatei bearbeitet habe, ~/.ssh/configaber ohne Erfolg.

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

Schließlich fand ich diesen Artikel, der das eigentliche Problem löste und enthüllte.

# 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

Dies ist meine Konfigurationsdatei und jetzt funktioniert Git perfekt über SSH!


3

Ausführen:

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

Ihre Ausgabe sollte folgendermaßen aussehen:

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

Wenn du bekommst:

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

Sie müssen Ihre ~ / .ssh / config-Datei bearbeiten. Fügen Sie Folgendes hinzu:

Host example.com
Port 1234

5
Ich bin nicht sicher, ob alle ncinstalliert haben werden. Was soll das sein? Netcat oder so?
Hack-R

2

Ich hatte das gleiche Problem, aber die Antwort, die ich fand, war anders. Ich dachte, jemand könnte auf dieses Problem stoßen. Hier ist meine Lösung.

Ich musste die weiße Liste 2 IPs für den Port 22, 80, 443, und 9418:

  • 192.30.252.0/22

  • 185.199.108.0/22

Falls diese IPs nicht funktionieren, weil sie möglicherweise aktualisiert wurden, finden Sie die aktuellsten auf dieser Seite .


0

Die obige Antwort gab mir die Informationen, die zur Behebung dieses Problems erforderlich waren. In meinem Fall begann die URL fälschlicherweise mit ssh: ///

Öffnen Sie die Git-Konfigurationsdatei, um zu überprüfen, ob die URL in Ihrer Git-Konfiguration korrekt ist: -

git config --local -e

Überprüfen Sie den URL-Eintrag. Es sollte NICHT ssh: /// am Anfang haben.

Falsche Eingabe:

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

Richtige Eingabe:

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

Wenn Ihre URL korrekt ist, besteht der nächste Schritt darin, die obige Antwort zu versuchen, die eine Änderung des Protokolls in http vorschlägt.


0

Als ich versehentlich zu einem Gast- WLAN-Netzwerk gewechselt bin, ist dieser Fehler aufgetreten. Musste wieder zu meinem Standard- WLAN-Netzwerk wechseln .


0

Ich hatte dieses Problem 2 Stunden lang und es stellte sich heraus, dass ich das "s" von https entfernte und einfach Folgendes tat:

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

Behoben.


Bitte schließen Sie diese Frage und markieren Sie sie als beantwortet
Clément

0

PROBLEM: Schritt zum Erstellen des Problems: git clone git@github.com: sramachand71 / test.git zum ersten Mal im neuen Laptop FEHLER ssh: Verbindung zum Host herstellen github.com Port 22: Zeitüberschreitung der Verbindung schwerwiegend: Konnte nicht von der Fernbedienung gelesen werden Repository.

Stellen Sie sicher, dass Sie über die richtigen Zugriffsrechte verfügen und das Repository vorhanden ist. LÖSUNG Zum ersten Mal im System zum Klonen müssen wir doppelte Anführungszeichen für den Klonbefehl geben. $ git clone "git@github.com: sramachand71 / test.git" Ich habe dieses Problem im System, auch nachdem alles korrekt war, aber ich habe endlich bemerkt, dass ein doppeltes Anführungszeichen für die URL "repository_url.git" zum ersten Mal oder für einen neuen Benutzer erforderlich ist Im System.


0

Das Ändern der Repo-URL von ssh in https ist für mich nicht sehr sinnvoll. Wie ich es vorziehen , sshüber httpswegen irgendeiner Art von zusätzlichen Vorteilen , die ich will nicht zu verwerfen. Die obigen Antworten sind ziemlich gut und genau. Wenn Sie dieses Problem in Gitlab Gesicht, gehen Sie bitte auf die offizielle Dokumentation Seite und Ihre Konfigurationsdatei wie das ändern.

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

0

Neustart Computer hat es für mich gelöst.
Git-Version: 2.27.0.windows.1
Betriebssystemversion: Windows 10 v1909

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.