什么可能导致我的 ssh 端口转发失败?

什么可能导致我的 ssh 端口转发失败?

我正在我的 qnap nas 上进行设置syncthing,目前我想将 nas 的 GUI 转发到位于同一网络上的笔记本电脑。 GUI 可在 nas 的端口上使用8384

[~] # nc -zv 127.0.0.1 8384
localhost [127.0.0.1] 8384 (?) open

现在,要从笔记本电脑访问此服务,我使用

ssh -p 50022 -L 9090:127.0.0.1:8384 admin@nasipaddress -v

,如上所述这里-v添加用于调试)。执行此操作,然后在笔记本电脑的浏览器上访问 127.0.0.1:9090,会在终端中出现以下错误(终端进入由ssh上述命令打开的 nas):

[~] # debug1: Connection to port 9090 forwarding to 127.0.0.1 port 8384 requested.
debug1: channel 3: new [direct-tcpip]
channel 3: open failed: administratively prohibited: open failed
debug1: channel 3: free: direct-tcpip: listening port 9090 for 127.0.0.1 port 8384, connect from 127.0.0.1 port 36462 to 127.0.0.1 port 9090, nchannels 4

此消息重复 10 次,每次将端口36462增加2。这administratively prohibited似乎暗示这是一些设置,我猜是在 nas 本身上,我会调查一下。不过,我也不确定所使用的端口 ( 36462) 来自哪里。

在 中sshd_config,我已设置AllowTcpForwardingyes,并且PermitOpen不存在,根据这个问题,我已经添加PermitTunnel yes这个帖子。我的整个sshd_config

Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
PermitRootLogin yes
UseDNS no
Subsystem sftp /usr/libexec/sftp-server
AllowTcpForwarding yes
AllowUsers admin
PermitTunnel yes

更改配置后,我重新启动了 ssh 守护进程。

我正在使用授权密钥,所有行都.ssh/authorized_keys包含ssh-rsa l0ngcrpt0grAph1cK3Y descriptive name

编辑:我重写了问题以反映新信息。

编辑解决了!
结果是,sshd_config重新启动 ssh 守护程序时,对 qnap nas 所做的更改将被撤消。是的,我知道。因此,确保该行AllowTcpForwarding yes存活的唯一方法是通过另一种方式添加它,如下所示:

setcfg LOGIN "SSH AllowTcpForwarding" TRUE

在 sshd 重新启动和系统重新启动后仍然存在。

答案1

您确定sshdNAS在编辑sshd_config文件后已重新启动吗?如果没有,它可能仍在使用旧的设置。

NAS 可能有一个软件防火墙,它会回答从 127.0.0.1 到端口 8384 的连接尝试,并显示“管理禁止”ICMP 错误,或者端口 8384 中的应用程序本身可能会执行相同的操作。

或者,sshdNAS 设备中的 可能已编译为不具有端口转发功能,导致它对端口转发尝试做出“管理禁止”响应,无论您在其sshd_config文件中放入什么内容。

相关内容