在Linux操作系统的旧版(2001?)脚本中,我遇到了使用命令-P
选项的情况ssh
:
$ ssh -P host.domain -l user
但是在ssh
手册页中没有提到任何-P
选项。但是,执行ssh -P host.domain
不会显示任何警告或错误。
那是什么?可能是旧的/未记录的选项?
在Linux操作系统的旧版(2001?)脚本中,我遇到了使用命令-P
选项的情况ssh
:
$ ssh -P host.domain -l user
但是在ssh
手册页中没有提到任何-P
选项。但是,执行ssh -P host.domain
不会显示任何警告或错误。
那是什么?可能是旧的/未记录的选项?
Answers:
旧版手册页:
-P
使用非特权端口。使用此功能,您不能使用rhosts或rsarhosts身份验证,但可以用来绕过某些不允许特权源端口通过的防火墙。
[...]
UsePrivilegedPort
指定连接到另一端时是否使用特权端口。如果启用了rhosts或rsarhosts身份验证,则默认值为yes。
直接来自源代码:
case 'P': /* deprecated */
options.use_privileged_port = 0;
break;
它将选项设置为0,无论如何这似乎都是默认值,因此它什么也不做。在不影响功能的情况下,忽略不推荐使用的选项有助于向后兼容...
该/* deprecated */
变化可以追溯到2002-09-04。
甚至我上面引用的一些代码(来自openssh-portable 7.7)也差不多在最近的提交中被删除了:
上游:弃用UsePrivilegedPort
现在已经删除了对运行ssh(1)setuid的支持,请删除支持代码并在手册页中清除对其的引用
自2002年以来我们就没有发布过ssh(1)setuid位。如果ayone确实需要从低端口号建立连接,则可以通过一个小的setuid ProxyCommand来实现。
好的markus @ jmc @ djm @
OpenBSD-Commit-ID:d03364610b7123ae4c6792f5274bd147b6de717e
它仍然忽略该选项,但不再设置内部变量。