该配置/etc/pam.d/password-auth
包含在多个PAM
服务中,包括sshd
.这是它的auth
节:
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
我一定误解了第二行,因为查看man pam_unix
和man pam.d
,它应该有效地允许空密码:
nullok
The default action of this module is to not permit the user access to a service if their official
password is blank. The nullok argument overrides this default.
但是,即使我在 中设置了空密码的用户/etc/shadow
,我也无法登录:
# grep johndoe /etc/shadow
johndoe::16335:0:99999:7:::
PAM
我对工作方式和工作的理解中缺少什么pam_unix
?
答案1
这是因为PermitEmptyPasswords
sshd 的配置选项设置为拒绝空密码。来自man 5 sshd_config
:
PermitEmptyPasswords
When password authentication is allowed, it specifies whether the server
allows login to accounts with empty password strings. The default is ``no''.
关键点:默认是拒绝通过 ssh 发送空密码。