通过另一台主机 SSH 到远程主机

通过另一台主机 SSH 到远程主机

我正在尝试通过 ssh 连接到远程主机 B,但网络访问控制规定我只能通过主机 A 执行此操作。我该怎么做呢?

已尝试创建到主机 A 的隧道 ssh -f -N -D 2222 user@hostA

然后,当从本地指定隧道端口创建新的 ssh 连接以隧道连接这些连接时,但无法使其工作.. ssh -L 2222:hostB:22 hostA

涉及的主机:本地主机 A(本地内联网)主机 B(互联网)

流量流向:本地 > HostA > HostB

任何指点都将非常有用。提前谢谢!

答案1

您使用动态端口转发的想法永远不会奏效。请从逻辑上考虑一下 - 您需要打开一个本地端口,该端口从本地计算机通过主机 A 转发到主机 B 上的端口 22。有几种方法可以实现这一点。首先,是不太优雅的手动方式:

首先,建立隧道:

$ ssh -L2222:hostB:22 user@hostA

然后,连接到主机B:

$ ssh -p 2222 user@localhost

首选方案是使用 ssh 客户端的ProxyCommand指令,它可以帮您自动完成此操作。将类似以下内容添加到您的~/.ssh/config

host hostB
  Hostname hostB
  ProxyCommand ssh user@hostA nc %h %p 2> /dev/null

完成此操作后,您可以执行以下操作:

$ ssh hostB

...ssh 客户端将为您处理一切。

相关内容