我可以将端口转发到build立的反向ssh隧道吗?

我有三台电脑,A,B和C.A已经发起了一个反向ssh隧道到B.

ssh -nTNx -p 443 -R 22222:localhost:22 [user]@[server] 

如果我login到B,我可以使用'ssh -p 22222 localhost',我得到一个login提示A.如果我尝试'ssh -p 22222 [B的公共IP]',它不起作用

我希望能够做的是有C连接到A,而不需要login到B.所以从CI可以'ssh -p 22222 [公共IP的B]',我会得到A的login提示。

我正在使用debian和shorewall,并且对事情的工作有一个基本的了解。 我尝试了REDIRECT和DNAT规则的各种组合,但没有任何运气。 我已经尝试使用相同的端口(22222)和一个不同的端口(转发22223从C到本地主机22222)。

有任何想法吗?

请参阅“工作中的任何人的远程端口转发!” 本网页的部分。 文章build议你应该添加

 GatewayPorts yes 

选项到你的HostB上的sshd_config 。 这应该会导致HostB上的远程端口转发,以侦听其所有networking接口。

你有没有在你的ssh命令中试过-g标志? 这就是告诉它允许远程系统连接到本地端口。 所以你会这样做:

 hostB$ ssh -g -L22222:localhost:22 user@hostA 

然后从主机C,这应该工作:

 hostC$ ssh -p22222 user@hostB