客户端和两台服务器之间的 SSH 转发

客户端和两台服务器之间的 SSH 转发

我试图弄清楚如何在客户端和两台服务器之间建立 shh 隧道。我需要客户端通过 ServerA 连接到 ServerB。

这些是事实:

  • 客户端可以连接到 ServerA(通过公共 IP)。
  • 客户端无法连接到 ServerB。
  • ServerA 无法连接到 ServerB。 (服务器与 ServerA 远程隔离且位于 NAT 后面)。
  • ServerB 可以连接到 ServerA(通过公共 IP)。
  • ServerA 和 ServerB 都无法连接到主机。 (客户端没有公共IP)。

准确设置它的 ssh 命令是什么?

答案1

您可以将客户端连接到服务器 A,将服务器 B 连接到服务器 A,并通过服务器 A 建立隧道。

在客户端:

ssh -L 2200:127.0.0.1:2200 user@serverA

在服务器B上:

ssh -R 2200:127.0.0.1:22 user@serverA

然后,要从客户端通过 SSH 连接到服务器 B,您只需运行(从客户端):

ssh -P 2200 user@serverB

答案2

我就是这样想出来的。

在客户端:
ssh -A user@ServerB

在服务器B上
ssh -N -R 44444:localhost:22 user@ServerA -p 2222

-p 2222在我的例子中,SSH 服务器没有监听默认端口22

在客户端:
ssh user@localhost -p 44444

相关内容