从第三台机器访问 SSH 隧道

Accessing SSH tunnel from third machine

我已经设置了以下 ssh 隧道,以便从家里访问办公室机器:

[从办公室机器执行] 设置连接 Office -> Home(因为 Home 有 public IP)。设置从办公室机器到家里的反向隧道:

ssh -CNR 19999:localhost:22 homeuser@home

[从家里的机器执行] 从家里连接到办公室。使用步骤 1 中的隧道:

ssh -p 19999 officeuser@home

现在,我如何才能从第三台机器而不是家里的机器访问我办公室的机器?我可以从互联网上的任何机器访问我家的机器。

谢谢

来自 -R 参数的 SSH 文档:

By default, TCP listening sockets on the server will be bound to the loopback interface only. This may be overridden by specify‐ ing a bind_address. An empty bind_address, or the address ‘*’, indicates that the remote socket should listen on all interfaces. Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).

所以你必须使用:

ssh -CNR 0.0.0.0:19999:localhost:22 homeuser@home

如果您在家庭服务器上使用 OpenSSH sshd 服务器,您需要将 /etc/ssh/sshd_config 中的 GatewayPorts 选项设置为 yes