通过2个跳转服务器进行SSH端口转发



我正在尝试连接到防火墙后面的服务器。

对于这个连接,我必须使用多个跳转服务器。所以我SSHlocaluser1@jump1user2@jump2user3@server。我可以使用直接连接到服务器

ssh -J user1@jump1,user2@jump2 user3@server

我想在本地计算机上的Sublime Text和目标服务器上的rmate之间建立隧道连接。我按照数据36上的说明操作。在描述中,用户只使用连接到一个服务器

ssh -R 52698:localhost:52698 user3@server

我还没有为三个服务器找到类似的东西。有这样的选择吗?也许有人可以给我举一个港口的例子。

我试过

ssh  -R 52698:localhost:52698,52698:jump1:52698, 52698:jump2:52698, 52698:server:52698 -J user1@jump1,user2@jump2 user3@server

但这给了我一个错误:

错误的远程转发规范52698:本地主机:529852698:jump1:529852698:jump2:526982698:服务器:52698

名称jump1jump2server代表各自的IP地址。所以在真正的ssh命令中,我使用的是IP地址,而不是名称。

你想得太多了。端口转发不是在每个连接上一跳一跳地完成的。通过所有链接建立隧道,然后通过隧道转发端口。

ssh -J user1@jump1,user2@jump2 -R 52698:localhost:52698 user3@server

或者——甚至更好——将配置放在~/.ssh/config:中

Host jump1
Hostname 1.1.1.1
User user1
Host jump2
Hostname 2.2.2.2
User user2
ProxyJump jump1
Host server
Hostname 3.3.3.3
User user3
ProxyJump jump2
RemoteForward 52698

然后仅为CCD_ 11。

命令不起作用的原因是jump1jump2没有相应的rmate服务器在这些特定端口上侦听并在下一台服务器上转发,因此信号在jump1处消失。如果您在jump1jump2上有shell帐户,则可以在每一个上以及在最终的server框上设置rmate

理论上这应该有效,但我没有任何方法来测试它。为了获得更多帮助,你也可以尝试在官方的Sublime文本论坛上发帖,看看是否有比我更有经验的人可以给你一些建议。

最新更新