反向 ssh 隧道:连接被拒绝

gre*_*eth 6 ssh ssh-tunnel

我正在尝试按如下方式设置反向 ssh 隧道:

A ==========> B <----X---- C
Run Code Online (Sandbox Code Playgroud)

我正在启动隧道A

ssh -p 443 -NR 19001:localhost:21 userOnB@B
Run Code Online (Sandbox Code Playgroud)

在计算机上,B如果我使用,我可以很好地使用隧道:

ssh -p 19001 userOnA@localhost
Run Code Online (Sandbox Code Playgroud)

但是,如果我B使用它的名称、IP 地址或另一台计算机(比如C)连接到,我会得到一个ssh: connect to host port 19001: Connection refused.

怎么了?

mgo*_*ven 15

默认情况下,隧道端点仅侦听 127.0.0.1,因此无法从其他机器访问它们。要更改此设置,您首先需要将其添加到/etc/ssh/sshd_config服务器上:

GatewayPorts clientspecified
Run Code Online (Sandbox Code Playgroud)

然后在建立隧道时指定监听地址为 0.0.0.0:

ssh -p 443 -NR 0.0.0.0:19001:localhost:21 userOnB@B
Run Code Online (Sandbox Code Playgroud)

  • 这些天为“systemd”用户的“systemctl reload sshd”。另外,我没有正确阅读是我的错,但是当两台计算机都被视为服务器时,“服务器”这个词对我来说并没有多大意义。`sshd` 配置必须在 *middleman* 服务器上完成,反向 ssh 隧道正在拨号。 (2认同)