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

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

我有三台计算机,A、B 和 C。A 已启动到 B 的反向 ssh 隧道。

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

如果我登录到 B,我可以使用“ssh -p 22222 localhost”,然后我会得到 A 的登录提示。如果我尝试“ssh -p 22222 [B 的公共 IP]”,它不起作用

我希望能够让 C 连接到 A 而无需登录 B。因此从 CI 可以“ssh -p 22222 [B 的公共 IP]”,然后我会得到 A 的登录提示。

我使用的是 debian 和 shorewall,对工作原理有基本的了解。我尝试过各种 REDIRECT 和 DNAT 规则的组合,但都失败了。我尝试过使用相同的端口 (22222) 和不同的端口 (将 22223 从 C 转发到本地主机上的 22222)。

有任何想法吗?

答案1

请参阅“为工作中的任何人提供远程端口转发!”部分此网页。本文建议你添加

GatewayPorts yes

选项添加到您sshd_config的 HostB 上。这应该会导致 HostB 上的远程端口转发监听其所有网络接口。

答案2

您是否尝试过-gssh 命令中的标志?这告诉它允许远程系统连接到本地端口。因此,您可以执行以下操作:

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

然后从主机 C 执行此操作:

hostC$ ssh -p22222 user@hostB

相关内容