Ubuntu 20.04下Git Credential Manager配置及Bitbucket克隆问题求助
Git Credential Manager 在 Ubuntu 20.04 配置问题及解决方案
一、credential.helper 多值错误的原因与解决方法
原因
全局Git配置中已存在多个credential.helper配置项,Git不允许用单个值直接覆盖多个值,因此执行git config --global credential.helper store时触发错误。
解决方法
- 查看当前所有全局
credential.helper配置:
git config --global --get-all credential.helper
- 逐个删除现有配置项(重复执行直到无输出):
git config --global --unset credential.helper
- 重新设置凭证助手(若后续用GCM,建议设为
gcm):
git config --global credential.helper gcm
二、克隆仓库失败的原因及疑问解答
克隆报错直接原因
你安装的Git Credential Manager(GCM)在Linux下默认依赖pass工具安全存储凭证,但pass未初始化GPG密钥对,导致GCM无法处理凭证流程,引发认证失败。
你的三个疑问解答
1. 为何需要设置密码存储?
Windows有系统自带的凭据管理器,GCM可直接集成安全存储凭证;而Linux环境下GCM默认用pass作为后端,pass依赖GPG加密避免明文存储账号密码,因此必须初始化pass才能让GCM正常工作(也可配置GCM使用其他存储方式)。
2. 为何无法克隆仓库?
有两个核心原因:
pass未初始化,GCM无法正常处理凭证,导致认证环节出错;- Bitbucket已不再支持直接用官网登录密码通过HTTPS执行Git操作,Windows能正常克隆是因为GCM自动使用了OAuth授权或你配置了App Password,而你在Ubuntu中输入的官网登录密码不符合Bitbucket认证要求。
3. 如何配置OAuth登录并保存凭证,无需重复输入?
推荐用GCM的OAuth授权方式,步骤如下:
- 按第一部分方法清理
credential.helper配置; - 设置GCM为全局凭证助手:
git config --global credential.helper gcm
- 执行克隆命令(无需在URL中携带用户名):
git clone https://bitbucket.org/<workspace>/<repo_name>.git
- GCM会自动打开浏览器,引导完成Bitbucket的OAuth授权,授权成功后凭证会被自动保存,后续拉取、推送无需重复输入账号密码。
若不想依赖pass,可配置GCM使用Ubuntu系统的libsecret作为存储后端:
git config --global credential.gcm.store libsecret
此方式无需初始化pass,直接用系统服务存储凭证。
内容的提问来源于stack exchange,提问作者mans
相关产品推荐
相关产品推荐

