如何连接到另一台服务器后面的 SSH 服务器?

如何连接到另一台服务器后面的 SSH 服务器?

我的项目中有三台服务器。服务器 A 有一个公网 IP 地址(11.11.11.11/24),服务器 B 有公网和私网地址(22.22.22.22/2410.10.10.22/24),服务器 C 只有一个私网 IP 地址(10.10.10.33/24)。

可以看到服务器B和服务器C在同一个私有局域网内。

在此处输入图片描述

现在我的要求是服务器 A 连接到服务器 C。然后它将通过 SSH 运行一些命令。有什么办法吗?我需要任何静态路由或代理吗?

答案1

您可以使用 ProxyJump/-J 命令行选项(如果您的 openssh 支持它):

ssh -J 22.22.22.22 10.10.10.30

或者在 22.22.22.22 设置 DNAT:

sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -d 22.22.22.22 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 10.10.10.30:22

并连接到特定端口:

ssh -p 2222 22.22.22.22

答案2

除了 之外ssh -J PROXY,正如@Tomek 所回答的那样,您还可以在文件中使用ProxyJump和来简化命令行上的连接。这已在其他地方介绍过,包括ProxyCommand~/.ssh/config这个帖子

答案3

在你的~/.ssh/config

Host ServerB
    User USERNAME
    Hostname 22.22.22.22
    Port 24


Host ServerC
    User USERNAME
    Hostname 10.10.10.33
    Port 24
    ProxyCommand ssh -q -W %h:%p ServerB

然后连接到Server C

ssh USERNAME@ServerC

相关内容