Nach dem Wechsel zu einer statischen IP ist keine SSH-Verbindung zu github.com möglich

Nach dem Wechsel zu einer statischen IP ist keine SSH-Verbindung zu github.com möglich

Ich verwende github.com schon seit langer Zeit, aber mein ISP hat gerade mein Heiminternet auf eine statische IP umgestellt und jetzt kann ich nicht mehr per SSH auf GitHub zugreifen.

Was passiert mit SSH?

Der Schlüssel id_ed25519 wurde gerade neu generiert. SSH stoppt einfach:

$ ssh -T -F ~/.ssh/config [email protected] -vvv

OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/xxxx/.ssh/config
debug1: /Users/xxx/.ssh/config line 1: Applying options for *
debug1: Connecting to github.com port 22.

Wireshark zeigt, dass überhaupt keine Rückgabepakete empfangen werden:

ein Screenshot meines Wiresharks, der TCP-Neuübertragungen zeigt

Vielleicht ist SSH nicht erlaubt?

Vielleicht! Aber ich kann von derselben Eingabeaufforderung aus problemlos per SSH auf AWS EC2-Instanzen zugreifen. Überhaupt keine Probleme.

Was habe ich sonst noch versucht?

Ich kann SSH über HTTPS verwenden. Zum Beispiel dies ...

ssh -T -p 443 [email protected]

...funktioniert einwandfrei und ich kann eine Verbindung herstellen. Aber ich muss wissen, WARUM der gute alte Port 22 bei mir nicht mehr funktioniert.

Was hat sich geändert?

Ich habe meinen ISP gebeten, mir eine statische IP-Adresse zuzuweisen. Das haben sie getan. Es hat funktioniert. Verbindungen von Geräten in meinem Netzwerk scheinen von dieser neuen statischen IP-Adresse zu kommen, die sie mir zugewiesen haben.

Inhalt der SSH-Konfiguration

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

Und als zusätzlicher Bonus:

$ git config --list
credential.helper=osxkeychain
user.name=xxxx
[email protected]
core.autocrlf=input

Antwort1

TCP-Traceroute verwenden

Ich folgte Tero Kilkanens Rat und installierte tcptraceroute, was das Problem löste. Edit: Ich wollte hinzufügen, dass ich es nicht verwendet hatte, tracerouteweil ich wusste, dass es das ICMP-Protokoll verwendet und nicht unbedingt auf dieselbe Weise wie meine TCP-SSH-Pakete geroutet wird. Das tcptraceroutewar also neu für mich und ich denke, es wird sehr nützlich sein!

1). Installieren Sie tcptraceroute

Dies ist auf dem Mac, also habe ich Homebrew verwendet, um die vorgeschlagene Formel zu installieren: formulae.brew.sh/formula/tcptraceroute:

$ brew install tcptraceroute

2). Ausführen von tcptraceroute

$ sudo tcptraceroute github.com 22

Ich habe einen Ablaufverfolgungsausschnitt beigefügt, der zeigt, dass es beim ISP aufhört:

 6  bundle-ether10.win-core10.melbourne.telstra.net (203.50.11.123)  26.865 ms  26.183 ms  27.529 ms
 7  bundle-ether2.fli-core10.adelaide.telstra.net (203.50.6.228)  34.738 ms  32.591 ms  37.021 ms
 8  bundle-ether1.fli-edge901.adelaide.telstra.net (203.50.11.155)  33.344 ms  33.840 ms  32.964 ms
 9  * * *
10  * * *
11  * * * 

3). Lösung mit ISP

Bevor ich den ISP anrief, überprüfte ich die Kontoeinstellungen. Das Deaktivieren der standardmäßigen Kindersicherung hat geholfen – SSH zu github.com ist wiederhergestellt!

Die Regeln blockierten nur youtube.com und das funktionierte nicht. Es ist wahrscheinlich, dass der Neustart der Verbindung durch den ISP nach der Zuweisung der statischen IP eine Neubewertung der konfigurierten Kindersicherungsregeln verursachte.

Keine Ahnung, warum https zu github.com erlaubt ist und nicht ssh (oder warum github.com überhaupt blockiert wurde), aber da haben wir es – Problem gelöst.

verwandte Informationen