我需要允许域用户(用户 ID 和密码)以及本地用户(SSH 密钥/无密码)访问 Centos 7 服务器。我已使用 AllowUsers 和 AllowGroups 配置了 sshd_config,并假设如果我将本地用户添加到这些用户中,它应该可以正常工作。但是,当本地用户尝试登录时,我收到错误:
sshd[23906]: pam_sss(sshd:account): Access denied for user datahub_push: 10 (User not known to the underlying authentication module)
sshd[23906]: fatal: Access denied for user datahub_push by PAM account configuration [preauth]
域用户工作正常,在 sshd_config 中的 AllowGroups 下有一个条目。经过一番谷歌搜索,我发现一个建议需要修改:
/etc/pam.d/sshd
...但我不确定要更改什么以及编辑该文件是否是最佳做法?即我应该使用 authconfig 工具吗?
非常感谢您的帮助。
答案1
我自己修复了它!我添加了以下行到
sshd 配置文件
account sufficient pam_localuser.so
重新启动 sshd 后,我现在可以作为域用户登录和本地用户。以下是完整的工作文件:
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
account sufficient pam_localuser.so
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
# Used with polkit to reauthorize users in remote sessions
-session optional pam_reauthorize.so prepare
希望这对其他人有帮助:)
答案2
即使 nsswitch.conf 正确,它也无法工作。我们使用 winbind 和 krb5 进行密码验证。windbind 可以工作,但本地用户验证不起作用,导致访问被拒绝。