我有两台服务器, middle和remote 。 middle用作访问remote的代理。 我已经build立了middle的sshconfiguration,以便通过ControlMaster保存到remote连接,如下所示
Host remote ControlMaster auto ControlPath ~/.ssh/%r@%h:%p ControlPersist yes
我创build了一个从middle到remote的持久连接。 这很方便,因为remote身份validation很复杂。
我想build立我的本地sshconfiguration,以便我可以从本地SSH通过middle remote , 重用上面创build的连接 。 我可以手动执行这个ssh -t middle ssh remote ,但是我找不到使用ProxyCommand选项完成同样的事情的一种方法,如果我想把一个文件scp到remote ,这特别烦人。
不起作用的ProxyCommands包括
ssh middle -W remote:22 (不重用连接) ssh middle -t remote (一直到一个shell,混淆了我的本地ssh客户端,这是希望与sshd,而不是壳) 我想你误解了ssh中的整个ControlMaster机制。 这个想法是连接在本地系统 – 也就是在“中间”服务器上被重用。 所以,实质上,重用连接,你需要调用“中间”的ssh客户端。 喜欢这个:
ssh中间的“ssh remote”
这将首先连接到“中间”,然后在那里启动一个ssh客户端,将您连接到“远程”。 第二个连接将通过正确的ControlMasterconfiguration重用现有的持久连接。