本文介绍使用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实例。
auth required pam_faildelay.so delay=2000000 auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular auth [default=1 ignore=ignore success=ok] pam_localuser.so auth sufficient pam_unix.so nullok auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular auth sufficient pam_sss.so forward_pass auth required pam_deny.so auth required pam_tally2.so deny=3 unlock_time=50 account required pam_unix.so no_pass_expiry account sufficient pam_localuser.so account sufficient pam_usertype.so issystem account [default=bad success=ok user_unknown=ignore] pam_sss.so account required pam_permit.so -
修改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用户未被锁定时。
-
远程连接实例,不再出现该错误时,说明该问题已修复。