反向SSH隧道:连接被拒绝

我试图build立一个反向ssh隧道,如下所示:

A ==========> B <----X---- C 

我从A发起隧道:

 ssh -p 443 -NR 19001:localhost:21 userOnB@B 

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

 ssh -p 19001 userOnA@localhost 

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

哪里不对?

默认情况下,隧道端点只能在127.0.0.1上侦听,所以不能从其他机器访问。 要改变这个,你首先需要把它添加到服务器上的/etc/ssh/sshd_config

 GatewayPorts clientspecified 

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

 ssh -p 443 -NR 0.0.0.0:19001:localhost:21 userOnB@B