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

Mac(M1/Intel)Jenkins中Git凭证访问异常:无法读取用户名

解决Jenkins在macOS上Git凭证克隆失败的问题

核心原因

Jenkins在macOS上默认以独立的系统用户运行(通常是jenkins),你手动操作时用的是个人用户,两者的Git配置和钥匙串环境完全隔离,所以之前配置的凭证Jenkins访问不到。

具体解决步骤

1. 切换到Jenkins系统用户

打开终端,执行命令切换到Jenkins用户:

sudo su - jenkins
# 如果提示shell不存在,使用这条命令:
sudo su - jenkins -s /bin/bash

2. 为Jenkins用户配置Git凭证助手

在Jenkins用户环境下,设置Git的凭证助手为osxkeychain:

git config --global credential.helper osxkeychain

3. 为Jenkins用户添加Git凭证到钥匙串

方法一:手动授权Jenkins访问现有钥匙串凭证

  • 打开「钥匙串访问」应用,找到你之前添加的Git仓库凭证(用户名+令牌)
  • 右键该凭证 → 「显示简介」
  • 切换到「访问控制」标签页,勾选「允许所有应用访问此项目」,或者点击「+」按钮,找到Jenkins执行文件(通常路径为/Applications/Jenkins/Jenkins.app/Contents/MacOS/jenkins)添加进去,保存设置。

方法二:在Jenkins用户环境下手动克隆一次仓库

在已切换到Jenkins用户的终端中,执行一次Git克隆命令:

git clone https://some_repo.com/your/repo.git

此时会弹出钥匙串授权提示(若未弹出,直接输入用户名和令牌),完成后凭证会存入Jenkins用户的钥匙串,后续构建即可自动读取。

4. 验证Jenkins用户的Git配置

在Jenkins用户终端中,检查配置是否生效:

git config --global --list

确认输出中包含credential.helper=osxkeychain。

5. 可选:改用Jenkins内置凭证管理

如果上述方法仍有问题,可使用Jenkins自带的凭证系统:

  • 在Jenkins后台添加「用户名和密码」类型的凭证,填入Git仓库的用户名和令牌
  • 修改build.sh脚本中的克隆命令,通过Jenkins注入凭证参数:
git clone https://${USERNAME}:${TOKEN}@some_repo.com/your/repo.git

可通过Jenkins流水线的withCredentials步骤,或构建参数来传递${USERNAME}和${TOKEN}。

额外注意事项

  • 确保Jenkins用户有足够的钥匙串访问权限,必要时在「系统设置」→「隐私与安全性」中给Jenkins授权。
  • M1 Mac需注意Jenkins的架构(Intel/ARM),确保Git和凭证助手的架构与Jenkins一致,避免兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:49:58