透明地将 SSH 连接转发到 NATed 服务器

透明地将 SSH 连接转发到 NATed 服务器

我已经尝试了很长时间,但还没有找到一个好的解决方案。我在 NAT 后面有几台服务器,它们都运行 SSH 守护程序。其中一台机器是我的主服务器,它将 SSH 端口转发给它。我想要的基本上是通过主服务器打开与其他 NAT 服务器的连接,类似于我通过打开与主服务器的连接然后通过 SSH 进入目的地可以实现的功能。由于有些应用程序在 SSH 上运行,因此我想使此操作自动化,以便在连接本身上运行 rsync 或 git。

SSH 有反向代理吗?

答案1

您可以使用ProxyCommandnetcat来执行此操作.ssh/config

# Your 'gateway' server.
Host gateway

# Any other server.
Host server1
  ProxyCommand ssh gateway /bin/netcat %h %p

如果你这样做ssh server1,你将打开从当前位置到“网关”服务器的 SSH 连接,这将打开到 的 TCP 连接server1。此 TCP 连接将作为当前位置和 之间的 SSH 连接server1

编辑:这种技术通常称为“ssh jumphost”。

答案2

虽然这与弹跳连接不同,但为了在类似情况下减少复杂性和依赖性,我让 SSHD 监听双端口,然后从路由器转发到各个服务器的辅助端口,以便 22 在内部工作,服务器 A 可能有从路由器转发的端口 2222,服务器 B 可能有 2223,服务器 C 可能有 2224,等等。

相关内容