SSH 通过中间机本地转发

SSH 通过中间机本地转发

我的设置如下:

 +--------+       +----------+      +-----------+
 | Laptop | <---> |  Middle  | <--> |   Server  |
 +--------+       +----------+      +-----------+

该服务器正在 TCP:127.0.0.1:8081 上运行 Web 服务器。所有机器都在运行 SSH,我拥有所有设备的凭证。

在出现中间的框之前,我的 SSH 配置曾经是这样的:

Host server
    Hostname server.internal.tld
    User ubuntu
    IdentityFile ~/.ssh/some_key.pem
    Port 20022
    LocalForward 8081 localhost:8081
    ServerAliveInterval 60
    KeepAlive yes
    ServerAliveCountMax 1

这让我可以通过浏览来访问浏览器中的页面localhost:8081

现在中间有一台机器,我可以通过它代理 SSH,那么我可以在我的 SSH 配置中添加一行来获得相同的结果吗?这有什么ProxyCommand用吗?这LocalForward行代码还能用吗ProxyCommand

答案1

首先检查是否可以从中间服务器访问 Web 服务器的 8081 端口。如果是,则只需在 LocalForward 配置中使用服务器的 IP 地址而不是 localhost。如果没有,请在 ssh 配置文件中添加以下行

ProxyCommand ssh user_name@middle_server_ip  nc %h %p

LocalForward 将与 ProxyCommand 一起工作。

相关内容