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

本文仅供学习。【云技术在线】专业提供阿里云、华为云、腾讯云技术支持,有任何问题请与我们联系。

免责声明:本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

 

问题描述

本文介绍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. 通过vivim命令编辑以上对应文件内容,注释、修改或删除以上文件中出现的如下代码。

    提示:此处以注释为例。

    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_tally2pam_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配置文件进行注释、修改或更新即可。

 

相关文档

更多PAM安全认证相关信息,请参考如下官方文档。

  •  pam_tally2 – login counter (tallying) module

 

适用于

  • 云服务器 ECS

 

如果您的问题仍未解决,您可以联系【云技术在线】工程师。

【云技术在线】免费提供阿里云、华为云、腾讯云的产品选型,架构设计,安装配置,故障排查,数据迁移等技术服务,有任何需求请与我们联系!13121395187(微信同号)