Ssh
奇怪的行為多跳 ssh
我有三台機器 A、B、C。目的是能夠將文件從 A 傳輸到 C。我有從 A 到 B 和 B 到 C 的 ssh 訪問權限;B 和 C 在本地網路上。這可以通過該
scp -o ProxyCommand
選項來實現,並且可以正常工作。但在我偶然發現這個解決方案之前,我嘗試了ssh -L
一種不起作用的方法。發現了問題,但沒有找到解決方案。首先,通過設置從 A 到 C(在 A 上)的 ssh 本地重定向。B 像這樣:ssh -p 8888 -L 5022:userC@hostC:22 userB@hostB
使用 ssh 在 A 上驗證/測試:
ssh -p 5022 userC@localhost
這失敗了一句話:
ssh_exchange_identification: Connection closed by remote host
/var/log/auth.log
B 說:sshd[9873]: error: connect_to userC@hostC: unknown host (Temporary failure in name resolution)
我已驗證 hostC 後的冒號 (:) 導致了故障,但尚未找到解決此問題的方法。任何想法都會很有用。
謝謝
-L
用於埠轉發。格式是
-L port:host:hostport
無論您通過向主機名規範添加使用者名來嘗試什麼都是
-L 5022:userC@hostC:22
不正確的。————————————————————-
最簡單的從主機 A 通過主機 B 到主機 C 的多跳 ssh 是使用
-J
較新 ssh 版本中可用的 ProxyJump 命令開關ssh -J userB@hostB userC@hostC
或者用 scp
scp -o 'ProxyJump userB@hostB' file userC@hostC:/path/