CentOS怎么修改具体的用户登录尝试限制项
如果要给PAM加上账户锁定策略,就需要在/etc/pam.d/sshd的第二行加入auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=300。这里别漏掉另一半:还得同时在sshd_con
如果要给PAM加上账户锁定策略,就需要在/etc/pam.d/sshd的第二行加入auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=300。这里别漏掉另一半:还得同时在sshd_config里配好MaxAuthTries,并在修改完成后重启sshd服务,这套配置才算真正生效。

直接改 /etc/pam.d/sshd 和 /etc/ssh/sshd_config 两处,就能生效;但顺序、模块名、参数位置错了就完全不生效,甚至导致 SSH 登录失败。
修改 PAM 的 pam_tally2.so 参数(控制账户锁定)
这是最常用也最容易出错的一环:必须加在 /etc/pam.d/sshd 文件的第二行(即 #%PAM-1.0 后紧跟着),否则认证流程跳过它,锁不住用户。
auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=300—— 普通用户输错 3 次锁 5 分钟,root 也一样锁 5 分钟deny=3是硬阈值,不是“3 次内允许”,而是第 4 次起拒绝认证unlock_time只对普通用户生效;root_unlock_time必须显式指定,否则 root 被锁后不会自动解锁- CentOS 7 默认带
pam_tally2.so,但某些最小化安装可能只有pam_tally.so,得换用后者并去掉even_deny_root(它不支持该参数)
调整 SSH 层的 MaxAuthTries(控制单次连接内尝试次数)
这个参数只管“一次 SSH 连接里最多输几次密码”,和 PAM 的“累计失败次数”是两套逻辑,常被混淆。
- 编辑
/etc/ssh/sshd_config,取消注释或新增:MaxAuthTries 3 - 设为 3 表示:用户连上来后,只有 3 次输密码机会,第 4 次直接断开连接,不计入 PAM 的失败计数
- 如果想让 PAM 的计数更准,建议把
MaxAuthTries设得比deny=大一点(比如deny=5就配MaxAuthTries 6),避免用户还没输够就被 SSH 层踢掉 - 改完必须
systemctl restart sshd,否则无效
验证是否真生效(别只看配置文件)
配置写对了不等于跑对了,PAM 规则顺序错、模块路径不对、SELinux 干预都可能导致静默失效。
- 用
faillock --user <用户名>查当前失败次数和锁定状态,返回空表示没触发或模块没加载 - 查日志:
grep "Failed password" /var/log/secure | tail -10,确认失败记录是否被记录 - 手动测试时,别用同一终端反复重试——很多客户端会复用连接,看起来像没锁;换新终端或用
ssh -o ConnectTimeout=5 user@host强制新建连接 - 如果改完 PAM 后 root 都登不上,立刻用 console 或 rescue mode 进去删掉刚加的那行,再重启 sshd
真正起作用的是 PAM 模块的加载顺序和参数拼写,而不是“改了几个地方”。尤其注意 even_deny_root 这种参数,在老版本或精简系统里可能根本不存在,强行加会导致整个 auth 流程失败。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















