我的设置如下:
+--------+ +----------+ +-----------+
| 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 一起工作。