更改為靜態 IP 後無法 SSH 到 github.com

更改為靜態 IP 後無法 SSH 到 github.com

我已經使用 github.com 很長時間了,但剛剛讓我的 ISP 將我的家庭互聯網切換為靜態 IP,現在我無法透過 SSH 訪問 github。

使用 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 顯示它根本沒有收到任何回傳資料包:

我的wireshark 顯示 TCP 重新傳輸的螢幕截圖

那麼也許 SSH 不被允許?

或許!但我可以從相同命令提示字元正常 ssh 到 AWS EC2 執行個體。完全沒有問題。

我還嘗試過什麼?

我可以透過 HTTPS 使用 SSH。例如,這個...

ssh -T -p 443 [email protected]

....工作正常,我可以連接。但我需要知道為什麼普通的 22 連接埠不再適合我了。

發生了什麼變化?

我要求我的 ISP 為我分配靜態 IP。他們已經做到了這一點。有效。從我網路上的設備發出的連接似乎來自他們分配的這個新靜態 IP。

ssh配置內容

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上,所以我使用自製程式安裝建議的公式: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 之前,我檢查了帳戶設定。禁用預設的家長監護功能就可以解決問題 - ssh 到 github.com 已恢復!

這些規則只屏蔽了 youtube.com,但那不起作用。 ISP 在分配靜態 IP 後重新啟動連線似乎可能導致重新評估已設定的家長監護規則。

不知道為什麼允許 https 訪問 github.com 而不允許 ssh(甚至不知道為什麼 github.com 被阻止),但問題就這樣解決了。

相關內容