有没有什么办法,让 /etc/shadow 中的密码为星号但 /etc/passwd 中的登录 shell 正确的用户能够通过 SSH 登录?

有没有什么办法,让 /etc/shadow 中的密码为星号但 /etc/passwd 中的登录 shell 正确的用户能够通过 SSH 登录?

让我们假设以下情况。我们有一个可以通过 SSH 访问的服务器。有一个用户/etc/passwd拥有有效的登录 shell(例如/bin/bash,而不是像这样的无效登录 shell /bin/false)。

*此用户的第二个(密码)字段中有一个星号 ( ) /etc/shadow。如果此用户的文件夹中没有 ssh 密钥,是否有办法让他通过 SSH 登录~/.ssh/

*或者,稍微重新表述一下这个问题:当密码字段中有一个时,许多在线指南建议禁用登录 shell,原因是什么/etc/shadow

答案1

*哈希密码位置中的A/etc/shadow有效地禁用了所有基于密码的登录,因为没有用户输入会产生哈希值*。但用户仍然可以使用其 ssh 密钥登录。

*与感叹号相比!进行比较不仅是非法的哈希,而且传统上表示A锁定帐户. 便携版 OpenSSH(GNU/Linux 上提供的版本)荣誉 锁定经过!不是使用 PAM ( UsePAM no)。Linux PAM 的pam_unix模块款待 *!同样的方式。

请注意,不同的类 UNIX 平台可能会使用另一个字符串来锁定帐户。

设置无效 shell 的原因只是为了防止交互式登录会话工作(无论是否设置了帐户密码)并且会阻止sudo su - user类似工作。

相关内容