Article / 文章中心

SSH登录Linux实例时多次连续错误输入密码导致用户锁定

发布时间:2021-04-25 点击数:401

点击查看原图

问题描述


本文介绍SSH登录Linux实例时,系统提示“Maximum amount of failed attempts was reached”错误的处理方法。




问题原因


多次连续错误输入密码,触发系统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用户操作,方能正常登录。




解决方案


阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。


根据问题原因,有以下两种解决方法,步骤如下。本文相关配置及说明在CentOS 7.6 64位操作系统和CentOS 5 64位操作系统中进行测试。其它类型及版本操作系统配置可能有所差异,具体情况请参阅相应操作系统官方文档。




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


  1. 参考管理终端,通过root用户登录Linux实例,执行如下命令,查看系统全局PAM配置文件。
    cat /etc/pam.d/system-auth
  2. 执行如下命令,查看本地终端对应的PAM配置文件。
    cat /etc/pam.d/login
  3. 执行如下命令,查看SSH服务对应的PAM配置文件。
    cat /etc/pam.d/sshd
  4. 通过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用户锁定后,多少时间后解锁,单位是秒。
  5. 在客户端SSH远程测试连接是否正常。




方法二:root用户被锁定时


  1. 参考管理终端,通过单用户模式登录。在单用户模式下,依次执行如下命令,手动解锁root用户。
    pam_tally2 -u root                          #查看root用户登录密码连续输入错误次数。
    pam_tally2 -u root -r                        #清除root用户密码连续输入错误次数。
    authconfig --disableldap --update          #更新PAM安全认证记录。
  2. 重启实例后,参考方法一步骤,在对应的PAM配置文件进行注释、修改或更新即可。




如果您有其他问题,可以联系北京志远天成阿里云代理商,为您提供一对一专业全面的技术服务,同时新老阿里云会员,均可享受我公司代理商价格,欢迎咨询欢迎咨询.gif