ssh "-P" 选项,它有什么用?

Gia*_*gli 20 ssh

在 Linux 操作系统的旧(2001?)脚本中,我遇到-Pssh命令选项的使用:

$ ssh -P host.domain -l user
Run Code Online (Sandbox Code Playgroud)

但是在ssh手册页中没有提到-P选项。尽管如此,执行ssh -P host.domain不会显示任何警告或错误。

那是什么?可能是旧的/未记录的选项吗?

fro*_*utz 27

旧版手册页:

-P

使用非特权端口。有了这个,你不能使用 rhosts 或 rsarhosts 身份验证,但它可以用来绕过一些不允许特权源端口通过的防火墙。

[...]

UsePrivilegedPort

指定连接另一端时是否使用特权端口。如果启用了 rhosts 或 rsarhosts 身份验证,则默认值为 yes。

直从源代码:

            case 'P':       /* deprecated */
                    options.use_privileged_port = 0;
                    break;
Run Code Online (Sandbox Code Playgroud)

它将选项设置为 0,无论如何这似乎是默认值,因此它什么都不做。忽略不提倡的选项有助于在不影响功能的情况下向后兼容性...

/* deprecated */变化可以追溯到2002-09-04。


甚至我上面引用的代码(来自 openssh-portable 7.7)也几乎在最近的一次提交中被删除了

上游:弃用UsePrivilegedPort

现在对运行 ssh(1) setuid 的支持已被删除,删除支持代码并清理手册页中对它的引用

自 2002 年以来,我们没有提供 ssh(1) 的 setuid 位。如果有人真的需要从低端口号建立连接,这可以通过一个小的 setuid ProxyCommand 来实现。

OK马库斯@ JMC @ DJM @

OpenBSD-Commit-ID: d03364610b7123ae4c6792f5274bd147b6de717e

它仍然忽略该选项,但甚至不再设置与之配套的内部变量。