SSH LocalForward 通过中间机

omg*_*i2u 1 ssh tunneling

我的设置如下所示:

 +--------+       +----------+      +-----------+
 | Laptop | <---> |  Middle  | <--> |   Server  |
 +--------+       +----------+      +-----------+
Run Code Online (Sandbox Code Playgroud)

服务器在 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
Run Code Online (Sandbox Code Playgroud)

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

是否有一行可以添加到我的 SSH 配置中以获得相同的结果,因为中间有一台我可以通过代理 SSH 的机器?这是以某种方式ProxyCommand使用的吗?这LocalForward条线还能用ProxyCommand吗?

小智 5

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

ProxyCommand ssh user_name@middle_server_ip  nc %h %p
Run Code Online (Sandbox Code Playgroud)

LocalForward 将与 ProxyCommand 一起使用。