为什么即使启用了 GatewayPorts,我也无法远程连接到反向 SSH 隧道端口?

Jam*_*ner 26 ssh port tunnel

我需要对我们部门的一台主机进行持续的 SSH 访问,该主机的 IP 地址是动态分配的。我已经建立了一个从目标主机到我们的一台主机的远程 SSH 隧道,它确实提供了一个静态 IP 地址:

ssh -f -N -g -R :22223:localhost:22 tunnelhost
Run Code Online (Sandbox Code Playgroud)

当我将 SSH 指向22223隧道主机上的本地端口时,隧道工作正常。我的问题是,我似乎无法将隧道绑定到本地主机以外的任何东西,即当我尝试通过 SSH 远程连接到 时tunnelhost:12323,没有开放端口来接收它。我也试过:

ssh -f -N -R :22223:localhost:22 tunnelhost -o GatewayPorts=yes
Run Code Online (Sandbox Code Playgroud)

但仍然没有运气。Netstat 向我展示了:

[me@tunnel_host ~]$ netstat -an | grep 22223
tcp        0      0 127.0.0.1:22223         0.0.0.0:*               LISTEN
tcp6       0      0 ::1:22223               :::*                    LISTEN
Run Code Online (Sandbox Code Playgroud)

确认隧道仅绑定到本地主机。我在隧道主机上添加了一个端口例外,使用 firewalld-cmd,并确保没有网络硬件干扰连接。关于它可能是什么的任何想法?

干杯,詹姆斯。

Dar*_*oid 40

您需要GatewayPorts=yes在 SSHd ( /etc/ssh/sshd_config)的配置中启用,而不是在客户端中启用以启用与远程端口上环回以外的接口的绑定。

-o GatewayPorts=yes
Run Code Online (Sandbox Code Playgroud)

传递给ssh命令时仅适用于本地端口。

  • `GatewayPorts=clientspecified` 是一种更安全的设置,请参阅 http://askubuntu.com/questions/50064/reverse-port-tunnelling。在这种情况下,需要空的绑定地址(`:22223:localhost:2` 中的尾随冒号)。 (4认同)
  • 我认为`GatewayPorts=clientspecified` 设置本身并不是更安全,而是允许更多地控制哪些连接将绑定到通配符,而不是让它们全部绑定到通配符。 (2认同)