在 /etc/shadow 中使用星号作为密码但在 /etc/passwd 中使用正确的登录 shell 的用户是否可以通过某种方式通过 SSH 登录?

use*_*974 0 security linux ssh password user-management

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

此用户*在 的第二个(密码)字段中有一个星号 ( ) /etc/shadow。如果该用户的~/.ssh/文件夹中没有 ssh 密钥,是否可以通过某种方式通过 SSH 登录?

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

HBr*_*ijn 7

*散列密码位置中的A/etc/shadow有效地禁用了所有基于密码的登录,因为没有用户输入将导致散列值*. 但是用户仍然可以使用他/她的 ssh 密钥登录。

使用*而不是使用感叹号的区别!在于,后者表示PAM 中的锁定帐户,根据您的 sshd 配置,它也会禁用基于密钥的登录。

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