为什么 `passwd -l` (--lock) 也阻止基于 ssh 密钥的登录?

wee*_*ger 5 ssh login users user-management passwd

我用passwd --lock [userName]锁定了用户密码,手册页和这个答案告诉我,锁定的密码不会阻止其他登录方式(例如:基于 ssh 密钥)。

\n\n

引用自man passwd

\n\n
\n

-l,--锁
\n 锁定指定帐户的密码。此选项通过将密码更改为与不可能的加密值匹配的值来禁用密码(它在密码的开头添加 \xc2\xb4!\xc2\xb4)。

\n\n

请注意,这不会禁用该帐户。
\n 用户可能仍然能够使用另一个身份验证令牌(例如 SSH 密钥)登录。
\n ...

\n
\n\n

最后引用的一句话告诉我,它不会影响基于 ssh 密钥的登录,但对于我的系统来说它会影响。不再允许用户使用其私钥通过 ssh 登录。

\n\n

在这里我应该得出什么结论:

\n\n
    \n
  1. 手册页和链接的答案(与所有其他在线材料一样)关于 ssh-key-exception 的信息是错误的。我应该为 man 条目打开一个错误报告(也就是说,即使rtfm并非在所有情况下都有效)。
  2. \n
  3. 该句子包含“可能”,因此我读了错误的手册或没有阅读完整的手册,并且在某处指出,在某些情况下 ssh 会尊重锁定的密码标志并阻止锁定的用户登录(又名rtfm是有效的,我是愚蠢地去寻找正确的地方)。
  4. \n
\n\n

由于我容易犯错,我认为第二个结论是正确的。如果是这样,有人可以指出我错过的文档/连接/等吗?哪些可以解释观察到的行为?

\n

Sim*_*nks 2

openssh 守护进程/服务发现该帐户已锁定并且已禁用访问。(密码字段以 ! 开头)

“sshd”的手册页表明:-

无论身份验证类型如何,都会检查帐户以确保其可访问。如果帐户被锁定、在 DenyUsers 中列出或其组在 DenyGroups 中列出,则该帐户将无法访问。锁定帐户的定义取决于系统。有些平台有自己的帐户数据库(例如 AIX),有些会修改 passwd 字段(Solaris 和 UnixWare 上为“ LK ”,HP-UX 上为“*”,Tru64 上包含“Nologin”,FreeBSD 上为前导“ LOCKED ”,大多数 Linux 上都以“!”开头)。如果需要禁用帐户的密码身份验证,同时仍然允许公钥,则 passwd 字段应设置为除这些值之外的其他值(例如“NP”或“ NP ”)。