ssh:透過持久 ControlMaster 連線的 ProxyCommand

ssh:透過持久 ControlMaster 連線的 ProxyCommand

我有兩台伺服器,middle並且remote.middle用作訪問的代理remote。我已經設定了middlessh 配置,以便它保留remote通過 ControlMaster 的連接,如下所示

Host remote ControlMaster auto ControlPath ~/.ssh/%r@%h:%p ControlPersist yes

middle我已經創建了從到 的持久連接remote。這很方便,因為身份驗證remote很複雜。

我想設定我的本地 ssh 配置,以便我可以從 localhost ssh 到remotevia 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 配置,第二個連接將重複使用現有的持久連接。

相關內容