Tailscale:SSH 可以與手動編譯的 Openssh 搭配使用,但不能與系統安裝的 Openssh 搭配使用

Tailscale:SSH 可以與手動編譯的 Openssh 搭配使用,但不能與系統安裝的 Openssh 搭配使用

(這個問題應該用“Tailscale”標記,但這還不存在 - 需要 Tailscale 的知識)

我有一台標準的 Ubuntu 20.04 筆記型電腦,透過 ssh 連接到遠端 Raspberry Pi(連接埠 22)。在遠端位置,路由器上有連接埠轉送(59995->22)。

~/.ssh/config注意:我在測試期間已將其刪除。

SSH 始終連線成功,使用:

ssh user@public_ip -i ~/.ssh/id_rsa -p 59995

但是,當我使用 Tailscale IP 時,它永遠不會連接,只是掛起 120 秒然後逾時:

ssh user@tailscale-ip -i ~/.ssh/id_rsa(不起作用)

但是,如果我手動編譯 OpenSSH v8.2,並使用該版本,而不是 /usr/bin/ssh 二進位文件,那麼它可以完美運行!即使 /usr/bin/ssh 也是 v8.2

./ssh user@tailscale-ip -i ~/.ssh/id_rsa(這有效!)

回顧一下:系統二進位檔案可以與「普通」ssh 一起正常工作,但不能與 ssh-via-tailscale 一起工作。然而,手動編譯的(相同)版本的 Openssh 可以與常規 ssh 和 ssh-over-tailsale 一起正常工作。有誰知道可能是什麼原因造成的?

補充筆記

我不認為 tailscale 網路有任何明顯的問題:即,如果我透過 tailscale IP 進行探測,則nmap掃描顯示正確的連接埠已打開,並且我可以netcat直接訪問tailscale_ip:22,它正在接收並回應。

diff ~/openssh-8.2p1/ssh /usr/bin/ssh顯示二進位檔案不同。 (大小差異也很大,大約 3MB 與 0.7MB)

/usr/bin/ssh -V:OpenSSH_8.2p1 Ubuntu-4ubuntu0.4、OpenSSL 1.1.1f 2020 年 3 月 31 日

~/openssh-8.2p1/ssh -V:OpenSSH_8.2p1、OpenSSL 1.1.1f 2020 年 3 月 31 日

日誌/usr/bin/ssh -vvv user@tailscale_ip -i ~/.ssh/id_rsa(ip 已編輯)

OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 100.1.1.1 is address
debug2: ssh_connect_direct
debug1: Connecting to 100.1.1.1 [100.1.1.1] port 22.
< 2 minute hang here >
ssh: connect to host 100.1.1.1 port 22: Connection timed out

答案1

我遇到了類似的問題,因為我的 ssh 用戶端沒有顯示 Tailscale 的 2FA 訊息,預設 ACL 策略ssh/action設定為"check"

嘗試檢查您的使用者/標籤的 ACL 設定? ssh 的操作值是多少?如果它設定為"check"- 嘗試將其更改為"access"並嘗試透過 ssh 存取您的主機。如果這項工作有效 - 我建議研究如何將 2FA 新增至 ssh 用戶端,以便它會顯示"check"模式下所需的 Tailscale 的身份驗證連結。

一些幫助我調查和解決類似問題的連結:

相關內容