目录

问题原因

提示

方法一:root用户未被锁定时

方法二:root用户被锁定时


本文介绍SSH登录Linux实例时,系统提示“Maximum amount of failed attempts was reached”错误的处理方法。注:也可能用户被锁定过后,报错仅仅是用户名密码错误/权限认证失败

具体情况可以查看系统的安全日志(用户登录日志):

vi -R /var/log/secure

#pam_unix:表示设置了PAM策略

问题原因

多次连续错误输入密码,触发系统PAM认证模块策略限制,导致用户被锁定。

提示

PAM(Pluggable Authentication Modules )是由Sun公司提出的一种认证机制。通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开。使得系统管理员可以灵活地根据需求,给不同的服务配置不同的认证方式,而无需更改服务程序,同时也便于向系统中添加新的认证手段。

如果PAM认证对root用户也做了限制,在root用户被锁定后,Linux实例管理控制台和SSH远程连接都不能正常登录,并且系统提示“Your account is Locked. Maximum amount of failed attempts was reached.”错误,该情况下需要通过Linux实例管理控制台单用户模式登录Linux系统,执行解锁root用户操作,方能正常登录。


方法一:root用户未被锁定时



参考管理终端,通过root用户登录Linux实例,执行如下命令,查看系统全局PAM配置文件。

cat /etc/pam.d/system-auth

执行如下命令,查看本地终端对应的PAM配置文件。

cat /etc/pam.d/login

执行如下命令,查看SSH服务对应的PAM配置文件。

cat /etc/pam.d/sshd

通过vi或vim命令编辑以上对应文件内容,注释、修改或删除以上文件中出现的如下代码。

提示:此处以注释为例。

auth required pam_tally2.so deny=3 unlock_time=5 #原文代码

#auth required pam_tally2.so deny=3 unlock_time=5 #注释后

auth required pam_tally.so onerr=fail no_magic_root #原文代码

#auth required pam_tally.so onerr=fail no_magic_root #注释后

auth requeired pam_tally2.so deny=5 lock_time=30 unlock_time=10 even_deny_root root_unlock_time=10 #原文代码

#auth requeired pam_tally2.so deny=5 lock_time=30 unlock_time=10 even_deny_root root_unlock_time=10 #注释后

注:

此处使用的是pam_tally2模块,如果不支持pam_tally2模块可以使用pam_tally模块。另外,不同的PAM版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。

pam_tally2与pam_tally模块都可以用于账户锁定策略控制。两者的区别是前者增加了自动解锁时间的功能。

even_deny_root指限制root用户。

deny指设置普通用户和root用户连续错误登录的最大次数,超过最大次数,则锁定该用户。

unlock_time指设定普通用户锁定后,多少时间后解锁,单位是秒。

root_unlock_time指设定root用户锁定后,多少时间后解锁,单位是秒。

在客户端SSH远程测试连接是否正常。

方法二:root用户被锁定时



参考管理终端,通过单用户模式登录。在单用户模式下,依次执行如下命令,手动解锁root用户。

pam_tally2 -u root        #查看root用户登录密码连续输入错误次数。

pam_tally2 -u root -r      #清除root用户密码连续输入错误次数。

authconfig --disableldap --update          #更新PAM安全认证记录。

重启实例后,参考方法一步骤,在对应的PAM配置文件进行注释、修改或更新即可。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐