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, traceroute
weil ich wusste, dass es das ICMP-Protokoll verwendet und nicht unbedingt auf dieselbe Weise wie meine TCP-SSH-Pakete geroutet wird. Das tcptraceroute
war 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.