You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins EC2 Agent主机密钥验证失败,添加命令仍报错求助

问题分析与解决办法

为什么会出现这种路径混乱?

  1. 你的EC2代理节点上不存在/home/ubuntu/.ssh目录,所以ssh-keygen -F会报错找不到known_hosts文件。
  2. Jenkins的Shell执行环境里,~的解析被覆盖了——原本~应该指向用户主目录/home/ubuntu,但实际被解析成了Jenkins作业的工作区路径/home/ubuntu/workspace/job-name,而这个路径下同样没有.ssh目录,导致写入known_hosts失败。

解决步骤

方法一:修正Shell命令(手动处理)

直接用绝对路径操作,同时确保所需目录和权限符合SSH要求:

# 创建主目录下的.ssh目录(如果不存在)
mkdir -p /home/ubuntu/.ssh
# 检查目标主机密钥,不存在则添加到known_hosts
ssh-keygen -F github.company.com || ssh-keyscan -H -t rsa github.company.com >> /home/ubuntu/.ssh/known_hosts
# 设置SSH要求的严格权限,否则可能触发验证失败
chmod 700 /home/ubuntu/.ssh
chmod 644 /home/ubuntu/.ssh/known_hosts

方法二:用Jenkins内置功能更省心

在Jenkins全局配置中添加已知主机密钥,避免每次作业手动执行命令:

  1. 进入Manage Jenkins > Configure System
  2. 找到SSH Known Hosts模块,点击「Add」
  3. 输入主机名github.company.com,点击「Fetch Key」自动获取并添加主机密钥
  4. 保存配置后,EC2代理节点在执行SSH操作时会自动加载这些已知主机,不会再出现验证错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 19:56:03