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
相关产品推荐
相关产品推荐

