Ssh

奇怪的行為多跳 ssh

  • November 24, 2018

我有三台機器 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.logB 說:

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/

引用自:https://serverfault.com/questions/941473