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

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

在 Linux 操作系统的旧(2001?)脚本中,我遇到过使用-P命令选项的情况ssh

$ ssh -P host.domain -l user

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

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

答案1

旧版本手册页:

-P

使用非特权端口。这样您就不能使用 rhosts 或 rsarhosts 身份验证,但它可以用来绕过某些不允许特权源端口通过的防火墙。

[...]

使用特权端口

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

直接从源代码:

            case 'P':       /* deprecated */
                    options.use_privileged_port = 0;
                    break;

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

/* deprecated */更改可以追溯到 2002 年 9 月 4 日。


甚至我上面引用的代码(来自 openssh-portable 7.7)也差不多在最近的提交中被删除:

上游:弃用 UsePrivilegedPort

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

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

好的,马库斯@jmc@djm@

OpenBSD-提交-ID:d03364610b7123ae4c6792f5274bd147b6de717e

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

相关内容