Linux服务器拒绝连接:Pentaho作业认证失败及进程终止问题
问题根源分析
从你提供的/var/log/secure日志片段:
Jan 31 17:14:24 pentahoserver sshd[22593]: pam_tally2(sshd:auth): user pentaho (1000) tally 7, deny 6
一眼就能定位问题核心:PAM的pam_tally2模块触发了登录失败次数限制。这个模块给pentaho用户设置了最多6次失败登录的阈值,而你的Pentaho作业短时间内发起大量并行SSH连接时,要么是并发认证请求被误判为多次失败,要么是部分连接确实认证超时/失败,累计到7次后触发了用户锁定,导致后续连接直接失败。
解决步骤
1. 临时解锁被锁定的用户
先快速解锁pentaho用户,让作业能先恢复运行:
pam_tally2 --reset --user pentaho
这个命令会重置该用户的登录失败计数,立刻恢复登录权限。
2. 调整PAM的登录失败限制配置
要彻底解决这个问题,需要放宽PAM的失败次数限制:
- 编辑
/etc/pam.d/sshd文件,找到包含pam_tally2.so的配置行(通常是类似auth required pam_tally2.so deny=6 onerr=fail unlock_time=600的内容),把deny=6改成更大的值,比如deny=50(根据你的实际并发连接数调整);如果是测试环境且不需要这个限制,也可以注释掉这一行(不推荐生产环境这么操作)。 - 同时检查
/etc/pam.d/system-auth和/etc/pam.d/password-auth文件里的pam_tally2配置,有些系统会在这里统一设置全局登录限制,需要同步调整。
3. 优化SSHD的并发连接处理
默认SSHD配置对未认证的并发连接有限制,也可能导致部分连接被拒绝:
- 编辑
/etc/ssh/sshd_config,找到MaxStartups参数(默认值一般是10:30:60),这个参数的含义是:当未认证连接数达到10个时,开始拒绝30%的新连接;达到60个时,拒绝所有新连接。 - 把它改成更适配你并发需求的值,比如
100:50:200,然后重启SSHD服务:
service sshd restart
4. Pentaho作业端的优化建议
从源头减少触发限制的概率:
- 调整作业的并发连接数,不要一次性发起过多连接,设置合理的并发阈值;
- 添加连接失败后的重试机制,避免短时间内大量失败请求累计计数;
- 强烈建议改用SSH密钥认证代替密码认证:密钥认证不仅更安全,认证速度更快,而且几乎不会触发PAM的失败计数(密钥认证失败的场景极少,PAM对其限制也更宽松)。
验证
修改配置后,先手动测试几个SSH连接确认正常,再运行Pentaho作业,同时监控/var/log/secure日志,观察是否还会出现pam_tally2的锁定提示。
内容的提问来源于stack exchange,提问作者Srini V
相关产品推荐
相关产品推荐

