You need to enable JavaScript to run this app. 如何解决最新版Jenkins SSH连接Redhat 7.9启动代理的Received Junk Text错误?
优惠活动
大模型
产品
解决方案
定价
更多

如何解决最新版Jenkins SSH连接Redhat 7.9启动代理的Received Junk Text错误?

故障场景

使用最新版Jenkins通过SSH方式拉起Redhat 7.9节点的SSH Slave代理时,连接流程卡在命令执行前置检查阶段,报错Received Junk Text,Slave启动失败。

已完成的前置排查

  • 目标服务器sshd服务的LogLevel已调整为QUIET,按官方说明该级别会关闭所有debug输出
  • 已逐一核查登录用户家目录下的.bashrc、.profile文件,确认不存在登录时主动向标准输出写内容的配置
  • 已尝试调整多项sshd_config配置屏蔽关联输出,故障现象无任何变化
  • 从Windows命令行直接执行SSH命令可正常连通服务器,但复现了完全一致的垃圾文本输出

故障日志

SSHLauncher{host='192.168.86.38', port=22, credentialsId='b7cce8cd-3f30-48f4-97e7-ca0511ce35fd', jvmOptions='', javaPath='', prefixStartSlaveCmd='', suffixStartSlaveCmd='', launchTimeoutSeconds=60, maxNumRetries=10, retryWaitTime=15, sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.ManuallyTrustedKeyVerificationStrategy, tcpNoDelay=true, trackCredentials=true}
[04/05/21 11:01:03] [SSH] Opening SSH connection to 192.168.86.38:22.
[04/05/21 11:01:03] [SSH] SSH host key matches key seen previously for this host. Connection will be allowed.
[04/05/21 11:01:05] [SSH] Authentication successful.
SSH connection reports a garbage before a command execution.
Check your .bashrc, .profile, and so on to make sure it is quiet.
The received junk text is as follows:
debug3: mm_request_send entering: type 124
debug3: Copy environment: XDG_SESSION_ID=19
debug3: Copy environment: XDG_RUNTIME_DIR=/run/user/1000
Environment:
  USER=curt
  LOGNAME=curt
  HOME=/home/curt
  PATH=/usr/local/bin:/usr/bin
  MAIL=/var/mail/curt
  SHELL=/bin/bash
  SSH_CLIENT=192.168.86.5 51847 22
  SSH_CONNECTION=192.168.86.5 51847 192.168.86.38 22
  XDG_SESSION_ID=19
  XDG_RUNTIME_DIR=/run/user/1000
null
[04/05/21 11:01:06] Launch failed - cleaning up connection
[04/05/21 11:01:06] [SSH] Connection closed.
根因定位

日志中捕获的所有垃圾文本,均来自sshd服务端进程自身的debug输出,并非用户shell初始化脚本产生。捕获到的debug3级别日志、环境变量逐行打印行为,直接说明sshd服务实际运行的日志级别为DEBUG3,并非配置的QUIET。

解决步骤
  • 核查sshd实际加载的配置值
    执行命令 /usr/sbin/sshd -T -c /etc/ssh/sshd_config | grep loglevel,验证sshd实际生效的日志级别。常见问题包括:配置文件内存在多段重复LogLevel配置、sshd读取的配置文件路径与修改路径不一致、配置行存在语法错误,导致之前调整的LogLevel QUIET未实际生效。
  • 完全重启sshd服务
    部分场景下仅重载sshd配置,运行中的sshd主进程仍会保留之前启动时加载的debug级别参数,需执行 systemctl restart sshd 完全重启服务使新配置生效。
  • 排查其他可能产生标准输出的配置
    • 确认sshd_config中PrintMotd no、PrintLastLog no、PrintBanner no配置已生效,避免系统登录提示、上次登录时间、自定义banner内容被输出到stdout
    • 核查/etc/profile.d目录下的系统级启动脚本,是否存在非交互式shell场景下也会输出内容的逻辑。可直接执行 ssh <目标服务器IP> "echo test" 测试,如果返回结果除test字符外存在其他多余输出,即为对应脚本或配置产生的垃圾文本
    • 检查/etc/pam.d/sshd文件,确认pam模块在认证流程中不存在会向stdout写内容的规则
注意事项
  • Jenkins SSH Slave插件的判定逻辑为:SSH认证完成后,一旦检测到stdout流中存在任何待执行命令前的多余输出,就会直接判定为连接异常,不会继续执行后续Slave启动命令
  • 排查时不要使用交互式SSH登录服务器做测试,因为交互式登录和非交互式命令执行的shell加载逻辑完全不同,直接通过ssh <IP> <命令>的非交互方式测试,结果与Jenkins的连接行为完全一致

内容的提问来源于stack exchange,提问作者Curt Evans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.26 23:36:03