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

无法配置Jenkins作业与Azure Repo连接,报错状态码128求解决

解决Jenkins关联Azure Repos SSH连接错误(状态码128)

1. 转换密钥为OpenSSH格式

Windows Jenkins默认适配OpenSSH密钥,Putty Gen生成的.ppk是Putty专用格式,得转成OpenSSH:

  • 打开Putty Gen,加载你已生成的.ppk密钥
  • 点击Conversions -> Export OpenSSH key,保存为id_rsa(不要加扩展名)
  • 把这个密钥放到Jenkins服务运行用户的.ssh目录,比如C:\Users\JenkinsServiceAccount\.ssh\

2. 修正Jenkins服务的权限配置

  • 检查Jenkins服务的运行账户:别用默认的Local Service,改用本地系统账户或指定的AD域账户(后者需要有本地文件访问权限)
  • 给.ssh目录和id_rsa文件设置权限:只允许Jenkins运行账户读取,删掉其他用户的权限,避免权限过高或不足

3. 核对Azure Repos的SSH公钥配置

  • 登录Azure DevOps,进入项目的Project Settings -> Repos -> SSH public keys
  • 确认添加的公钥是Putty Gen里Public key for pasting into OpenSSH authorized_keys file的内容,格式开头是ssh-rsa或ecdsa-sha2-nistp256,结尾带你的用户名
  • 确保公钥没过期,且关联的是当前操作的Azure账户

4. 在Jenkins节点上测试SSH连通性

  • 切换到Jenkins运行用户的命令行:用runas /user:JenkinsAccount cmd打开
  • 执行命令:ssh -T git@ssh.dev.azure.com
  • 出现Welcome to Azure DevOps, <你的用户名>!说明连接正常;如果报错主机密钥未信任,执行ssh-keyscan ssh.dev.azure.com >> C:\Users\JenkinsAccount\.ssh\known_hosts添加信任

5. 调整Jenkins作业的Git配置

  • 作业源码管理选Git,仓库URL填Azure Repos的SSH地址(格式示例:git@ssh.dev.azure.com:v3/你的组织名/项目名/仓库名)
  • 凭据选择SSH Username with private key,要么手动指定刚才的id_rsa文件,要么选From the Jenkins master ~/.ssh(如果密钥放在Jenkins主节点用户目录)

6. AD环境下的HTTPS替代方案

如果SSH始终有问题,AD环境可以用Azure DevOps个人访问令牌(PAT)替代:

  • 打开Azure DevOps,点击个人头像 -> Personal access tokens -> 生成PAT,勾选Code (Read)权限
  • Jenkins凭据里添加Username with password,用户名填你的AD邮箱,密码填生成的PAT
  • 仓库URL用HTTPS地址,选择这个凭据,就能免密克隆

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:28:27