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

Windows构建节点下Jenkins pipeline执行git push失败,known_hosts路径在哪?

解决方案

1. Windows系统known_hosts文件存储路径

SSH的known_hosts文件存储路径和执行命令的用户身份直接相关,当前场景使用的是SYSTEM系统账户,对应路径如下:

  • 普通登录用户路径:C:\Users\<你的用户名>\.ssh\known_hosts
  • SYSTEM账户64位程序调用路径:C:\Windows\System32\config\systemprofile\.ssh\known_hosts
  • SYSTEM账户32位程序调用路径(常见于32位Jenkins Agent进程):C:\Windows\SysWOW64\config\systemprofile\.ssh\known_hosts

注意:如果对应路径下没有.ssh目录,需要手动创建该目录后再操作。

2. 添加Bitbucket主机密钥的方法

方法1:命令行自动添加(推荐)

以管理员权限打开PowerShell或CMD,执行以下命令获取Bitbucket的主机公钥并写入对应路径的known_hosts文件即可,以64位SYSTEM账户为例:

ssh-keyscan bitbucket.org >> C:\Windows\System32\config\systemprofile\.ssh\known_hosts

验证是否生效:执行ssh -T git@bitbucket.org,无主机密钥校验报错即为配置成功。

方法2:交互模式手动添加

使用PsExec工具启动SYSTEM权限的CMD窗口,手动执行一次git push命令,遇到主机密钥确认提示时输入yes,系统会自动将公钥写入对应known_hosts文件。

临时测试方案(不推荐生产环境使用)

如果只是临时验证功能,可以在Pipeline的sh步骤中关闭主机密钥校验,修改代码如下:

stage("Create and push branch") {
    sh """
        export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no"
        git checkout development
        git checkout -b feature/test-branch-access
        git push origin feature/test-branch-access
    """
}

补充说明

拉代码正常、push报错的原因是:Jenkins内置的git插件在拉取代码时会自动处理主机密钥校验逻辑,而后续自定义sh步骤调用的是系统原生git命令,会触发SSH的主机密钥校验流程,因此需要单独配置known_hosts文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:57:02