我有兩台伺服器,middle
並且remote
.middle
用作訪問的代理remote
。我已經設定了middle
ssh 配置,以便它保留remote
通過 ControlMaster 的連接,如下所示
Host remote ControlMaster auto ControlPath ~/.ssh/%r@%h:%p ControlPersist yes
middle
我已經創建了從到 的持久連接remote
。這很方便,因為身份驗證remote
很複雜。
我想設定我的本地 ssh 配置,以便我可以從 localhost ssh 到remote
via middle
,重複使用上面建立的連接。我可以手動執行此操作ssh -t middle ssh remote
,但我無法找到使用 ProxyCommand 選項完成相同操作的方法,如果我想將文件 scp 到remote
.
不起作用的 ProxyCommands 包括
ssh middle -W remote:22
(不重複使用連線)ssh middle -t remote
(一直到 shell,讓我的本地 ssh 用戶端感到困惑,它期望與 sshd 通信,而不是 shell)
答案1
我認為你誤解了 ssh 中的整個 ControlMaster 機制。這個想法是連接在本地系統上重複使用 - 即在“中間”伺服器上。因此,本質上,要重複使用連接,您需要在「中間」呼叫 ssh 用戶端。像這樣:
ssh 中間“ssh 遠端”
這將首先將您連接到“中間”,然後在那裡啟動 ssh 用戶端,將您連接到“遠端”。透過正確的 ControlMaster 配置,第二個連接將重複使用現有的持久連接。