正如许多其他人遇到的那样,我有一个位于“远程”DHCP 路由器后面的系统,由于各种原因需要使用反向端口映射与“本地”系统可靠地连接 - 从根本上来说这是为了备份和维护。
令人高兴的是,我使用 ssh 的出站连接来建立与我的“本地”Fedora 服务器的连接,让它工作得很好。
不幸的是,它随后停止工作。
发生了什么变化?本地系统的升级,哦,我不确定 Fedora 的版本,但可能是 28 左右;我刚刚将其全部替换为 Fedora 38 上的新设置。
设置“完全相同”,但显然不是!
“远程”系统使用:
ssh -N -R :<port>:localhost:22 <user>@<local_system>
“远程”端看到:
Warning: remote port forwarding failed for listen port <port>
在“本地”方面,/var/log/secure
看到:
May 30 18:18:38 server1 sshd[45591]: Accepted publickey for <user> from <remote_IP> port 41158 ssh2: RSA SHA256:<some_key>
May 30 18:18:38 server1 sshd[45591]: pam_unix(sshd:session): session opened for user <user>(uid=<uid>) by (uid=0)
May 30 18:18:38 server1 sshd[45593]: error: bind [127.0.0.1]:<port>: Permission denied
好吧,那么:权限被拒绝 - 看起来足够清楚了!但是什么许可,在哪里?我该如何解决它?
当前有效的“特权”端口(因此
ssh
推测不可用于)和“非特权”端口之间的边界可以通过以下命令找到:如果低于该数字,则不要将其用于此目的,高于该数字就可以了。此外,由于它的措辞方式,人们会认为恰好这个数字的端口也将是无特权的,因此也可以。
作者仍然不知道其工作原理的其他方面,例如端口号太大。但是,我的问题已经解决了,也许这对其他人也有帮助。