本文介绍使用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用户未被锁定时。
远程连接实例,不再出现该错误时,说明该问题已修复。