有 3 个 UNIX 盒子:
- 客户
- 弹跳箱
- 偏僻的
REMOTE 计算机仅允许来自弹跳盒的 SSH 连接。在 BOUNCE 框中,我的本地 SSH 配置文件中有以下内容:
Host REMOTE
HostName remote.domains.tld
ControlPath ~/.ssh/master-r@%h
ControlMaster auto
ControlPersist 4h
ForwardAgent yes
IdentityFile ~/.ssh/id_rsa
上面的内容允许我重用单个连接,这样我就不必每次需要另一个控制台时都登录等等......
如果不使用 SSH 隧道(即ssh -L 22:REMOTE:22 user@BOUNCE
),我希望能够从 CLIENT 连接到 REMOTE 并重新使用 BOUNCE 上已打开的连接,这样我就不需要每次打开新控制台时都重新进行身份验证。
这种事可能吗?
答案1
ProxyCommand
通过使用 CLIENT 和 BOUNCE 之间的可重用连接以及指令,您也许能够实现您想要做的事情。
在客户端的文件中~/.ssh/config
:
Host REMOTE
HostName remote.domains.tld
ProxyCommand ssh BOUNCE -W %h:%p
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster auto
ControlPersist 4h