本文介绍使用SSH客户端远程连接Linux系统的ECS实例时,提示“Maximum amount of failed attempts was reached”错误的原因和解决方案。
问题描述
使用SSH客户端远程连接Linux系统的ECS实例时,提示“Maximum amount of failed attempts was reached”错误。
问题原因
连续多次输入错误密码,触发系统PAM认证模块策略限制,导致用户被锁定,无法远程连接ECS实例。
Linux系统中和SSH相关的PAM配置文件主要有以下三个,如果PAM认证对远程连接做了限制,例如设置auth required pam_tally2.so deny=3 unlock_time=50,表示普通用户和root用户连续三次输入错误密码,50秒后才能再次远程连接ECS实例。
/etc/pam.d/login:VNC对应的PAM配置文件。/etc/pam.d/sshd:SSH服务对应的PAM配置文件。/etc/pam.d/system-auth:系统全局PAM配置文件。
解决方案
您可以根据root用户是否被锁定,选择具体的方案进行修复。
root用户未被锁定
本文以注释系统全局PAM配置文件(/etc/pam.d/system-auth)中PAM限制配置为例进行说明,修改/etc/pam.d/sshd或/etc/pam.d/system-auth方法类似。
使用root用户通过VNC方式连接实例。
具体操作,请参见通过密码认证登录Linux实例。
执行如下命令,查看PAM配置文件中是否存在PAM认证限制。
cat /etc/pam.d/system-auth例如,系统返回如下时,表示普通用户和root用户连续三次输入错误密码,50秒后才能再次远程连接ECS实例。

修改system-auth配置文件。
执行如下命令,打开system-auth配置文件。
vim /etc/pam.d/system-auth按
i进入编辑模式。根据业务需要,注释、修改或删除该配置。
本文以注释配置为例进行说明。
auth required pam_tally2.so deny=3 unlock_time=50 #原文代码:普通用户和root用户连续三次输入错误密码会被锁定,50秒后才能解锁。 #auth required pam_tally2.so deny=3 unlock_time=50 #注释后说明此处使用的是
pam_tally2模块,如果不支持pam_tally2模块可以使用pam_tally模块。另外,不同的PAM版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。更多详情,请参见Linux PAM SAG。pam_tally2与pam_tally模块都可以用于账户锁定策略控制。两者的区别是前者增加了自动解锁时间的功能。even_deny_root指限制root用户。deny指设置普通用户和root用户连续错误登录的最大次数,超过最大次数,则锁定该用户。unlock_time指设定普通用户锁定后,多长时间后解锁,单位是秒。root_unlock_time指设定root用户锁定后,多长时间后解锁,单位是秒。
远程连接实例,不再出现该错误时,说明该问题已修复。
root用户被锁定
使用单用户模式远程连接实例。
具体操作,请参见Linux系统进入单用户模式。
依次执行如下命令,解锁root用户。
pam_tally2 -u root #查看root用户登录密码连续输入错误次数。 pam_tally2 -u root -r #清除root用户密码连续输入错误次数。 authconfig --disableldap --update #更新PAM安全认证记录。重启实例。
具体操作,请参见重启实例。
在对应的PAM配置文件中注释、修改或删除相应配置。
具体操作,请参见方案一:root用户未被锁定时。
远程连接实例,不再出现该错误时,说明该问题已修复。