我正在尝试连接到防火墙后面的服务器。
对于这个连接,我必须使用多个跳转服务器。所以我SSHlocal
→user1@jump1
→user2@jump2
→user3@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
名称jump1
、jump2
和server
代表各自的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。
命令不起作用的原因是jump1
和jump2
没有相应的rmate
服务器在这些特定端口上侦听并在下一台服务器上转发,因此信号在jump1
处消失。如果您在jump1
和jump2
上有shell帐户,则可以在每一个上以及在最终的server
框上设置rmate
。
理论上这应该有效,但我没有任何方法来测试它。为了获得更多帮助,你也可以尝试在官方的Sublime文本论坛上发帖,看看是否有比我更有经验的人可以给你一些建议。