(この質問には「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-tailscale の両方で正常に動作します。この原因が何かわかる人はいますか?
その他の注意事項
これは 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/action
私の ssh クライアントでは、デフォルトの ACL ポリシーがに設定されていても Tailscale の 2FA メッセージが表示されなかったため、同様の問題が発生しました"check"
。
ユーザー/タグの ACL 設定を確認してみてください。SSH のアクション値は何ですか? 設定されている場合は"check"
、変更して"access"
SSH 経由でホストにアクセスしてみてください。これが機能する場合は、モードで必要な Tailscale の認証リンクが表示されるように、SSH クライアントに 2FA を追加する方法を調べることをお勧めします"check"
。
同様の問題を調査して解決するのに役立ったリンクをいくつか示します。