问题
- 在CentOS/RHEL上,Active Directory 用户使用 SSSD 通过 SSH 登录时,报错:
"Permission Denied, Please Try Again"
“权限被拒绝,请重试”:
# ssh [hostname] -l [username]@[DOMAINNAME].com The authenticity of host '[hostname] ([IP ADDRESS])' can't be established. RSA key fingerprint is 4f:3b:ba:b2:b7:6e:d0:b7:dd:a6:4b:32:ac:e3:58:63. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[hostname],[IP ADDRESS]' (RSA) to the list of known hosts. [username]<@DOMAINNAME>.com@[hostname]'s password: Permission denied, please try again. [username]<@DOMAINNAME>.com@[hostname]'s password:
- 验证用户名和密码是否正确:
$ su - [username] # su - [username]@[DOMAINNAME].com
- 在/var/log/secure历史记录中可以看到认证失败:
Apr 3 23:20:24 [hostname] sshd[323944]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=ittwhxh1n62.na.admworld.com user=[username] Apr 3 23:20:24 [hostname] sshd[323944]: pam_tally2(sshd:auth): user [username] (1494516080) tally 11, deny 5 <<<<<<<<<<<<< Apr 3 23:20:26 [hostname] sshd[323944]: Failed password for [username] from [IP ADDRESS] port 51803 ssh2 Apr 3 23:20:34 [hostname] sshd[323944]: pam_tally2(sshd:auth): user [username] (1494516080) tally 12, deny 5 <<<<<<<<<<<<< Apr 3 23:20:37 [hostname] sshd[323944]: Failed password for [username] from [IP ADDRESS] port 51803 ssh2 Apr 3 23:20:40 [hostname] sshd[323944]: PAM 1 more authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=ittwhxh1n62.na.admworld.com user=[username] Apr 3 23:24:37 [hostname] sshd[338364]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=ittwhxh1n62.na.admworld.com user=[username] Apr 3 23:24:37 [hostname] sshd[338364]: pam_tally2(sshd:auth): user [username] (1494516080) tally 13, deny 5 <<<<<<<<<<<<< Apr 3 23:24:39 [hostname] sshd[338364]: Failed password for [username] from [IP ADDRESS] port 51893 ssh2
更多: zhilu jiaocheng
根本原因
一个或者多个配置文件的问题: system-auth-ac 和 password-auth-ac ,sssd 模块在下面的配置文件中被注释:
$ grep sss /etc/pam.d/system-auth-ac # auth sufficient pam_sss.so use_first_pass # account [default=bad success=ok user_unknown=ignore] pam_sss.so # password sufficient pam_sss.so use_authtok # session optional pam_sss.so
$ grep sss /etc/pam.d/password-auth-ac # auth sufficient pam_sss.so use_first_pass # account [default=bad success=ok user_unknown=ignore] pam_sss.so # password sufficient pam_sss.so use_authtok # session optional pam_sss.so
pam_tally2 模块与 sssd 模块冲突:
$ cat etc/pam.d/sshd #%PAM-1.0 auth required pam_sepermit.so auth include password-auth ##auth required pam_tally2.so deny=5 onerr=fail serialize >>>> #auth required pam_tally2.so deny=5 onerr=fail lock_time=600 serialize # EXADATA ACCESS CONTROL via /etc/exadata/security/exadata-access.conf account required pam_nologin.so account include password-auth account required pam_tally2.so 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 required pam_limits.so
# cat /etc/pam.d/login auth required pam_tally2.so deny=5 onerr=fail serialize
# cat/etc/pam.d/login account required pam_tally2.so
解决方案
注意:当心删除 /pam.d/ 目录下的所有备份文件。
在 /etc/pam.d/* 目录下的所有身份验证文件中注释 pam_tally2 行。
注释掉原因部分中提到的行,[启用 sssd 模块] 如下。
$ grep sss /etc/pam.d/system-auth-ac auth sufficient pam_sss.so use_first_pass account [default=bad success=ok user_unknown=ignore] pam_sss.so password sufficient pam_sss.so use_authtok session optional pam_sss.so
$ grep sss /etc/pam.d/password-auth-ac auth sufficient pam_sss.so use_first_pass account [default=bad success=ok user_unknown=ignore] pam_sss.so password sufficient pam_sss.so use_authtok session optional pam_sss.so
日期:2020-09-17 00:13:00 来源:oir作者:oir
