在构建代理账户下对比 Jenkins 的 SSH 路径
在执行该步骤的代理上检查用户、生效的 SSH 配置和辅助程序路径,而不是依赖交互式 root 运行。
在与失败的 SSH 步骤相同的代理账户和构建环境中运行以下命令:
id -un
ssh -G deploy-target把 deploy-target 换成构建实际使用的确切 SSH 名称。将得到的 hostname、port 和 proxycommand 与可正常工作的交互式启动结果进行比较。
| 需要检查的差异 | 影响 |
|---|---|
| 操作系统用户与主目录 | 决定使用哪个用户的 SSH 文件和权限 |
| 目标名称 | 决定选用哪些 Host 段和包含的设置 |
| ProxyCommand 可执行文件/路径 | 决定辅助程序能否在该环境中启动 |
| SSH 命令行选项 | 可能选用另一个配置文件或覆盖某个取值 |
如果差异仍不清楚,详细的 SSH 诊断可以显示读取了哪些文件。JENKINS_HOME 是 Jenkins 的数据位置,并不是远程代理用户的通用主目录。请在实际执行该命令的机器和账户上准备所需的 SSH 配置、认证和主机密钥数据。
在 Ncat 中,--proxy 的代理端口是出站目标,而不是辅助程序绑定的本地监听端口。仅以 root 身份成功本身并不能说明存在特权监听端口问题。