私は長い間 github.com を使用してきましたが、ISP が自宅のインターネットを静的 IP に切り替えたため、github に SSH 接続できなくなりました。
SSH では何が起こりますか?
id_ed25519 キーが再生成されました。SSH は停止します:
$ 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 では、戻りパケットがまったく受信されていないことが示されています。
つまり、SSH は許可されていないのでしょうか?
たぶん!しかし、同じコマンドプロンプトから AWS EC2 インスタンスに ssh で接続することはできます。まったく問題ありません。
他に何を試しましたか?
SSH over HTTPS を使用できます。たとえば、次のようになります...
ssh -T -p 443 [email protected]
...正常に動作し、接続できます。しかし、普通のポート 22 が動作しなくなった理由を知る必要があります。
何が変わったのでしょうか?
ISP に静的 IP を割り当てるように依頼しました。ISP はこれを実行し、うまくいきました。ネットワーク上のデバイスからの接続は、ISP が割り当てたこの新しい静的 IP から行われているようです。
ssh configの内容
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
さらにボーナスとして、
$ git config --list
credential.helper=osxkeychain
user.name=xxxx
[email protected]
core.autocrlf=input
答え1
TCPトレースルートを使用する
Tero Kilkanen のアドバイスに従って、tcptraceroute をインストールしたところ、問題が解決しました。編集: traceroute
ICMP プロトコルが使用され、TCP SSH パケットと同じようにルーティングされるわけではないことを知っていたため、使用していなかったことを付け加えておきます。tcptraceroute
私にとっては新しいツールでしたが、非常に役立つと思います。
1). tcptracerouteをインストールする
これは Mac 上のものなので、homebrew を使用して推奨される式をインストールしました: formulae.brew.sh/formula/tcptraceroute:
$ brew install tcptraceroute
2). tcptracerouteを実行する
$ sudo tcptraceroute github.com 22
ISP で停止していることを示すトレースのスニペットを記載します。
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). ISPによる解決
ISP に電話する前に、アカウント設定を確認しました。デフォルトのペアレンタル コントロールを無効にすると、github.com への ssh が復元されました。
ルールは youtube.com のみをブロックしましたが、機能していませんでした。静的 IP を割り当てた後に ISP が接続を再起動したため、構成されたペアレンタル コントロール ルールが再評価された可能性があります。
github.com への https は許可され、ssh は許可されない理由 (または github.com がブロックされる理由) はわかりませんが、これで問題は解決しました。