不使用SSH方法解决Git仓库Authentication failed身份验证报错问题
HTTPS 方式解决 Ubuntu 系统 Git 身份验证失败问题
前置检查
首先执行命令确认当前 Git 凭据存储方案:git config --global credential.helper
Ubuntu 系统默认返回结果通常为 store 或 libsecret,对应不同的清理方案。
方案1:凭据存储为 libsecret(桌面环境默认)
libsecret 对接系统桌面的密钥环,无法直接通过文件删除,按以下步骤操作:
- 安装密钥环操作工具:
sudo apt update && sudo apt install libsecret-tools -y - 搜索已存储的 Git 凭据,确认要删除的条目:
secret-tool search service git-credential - 清理对应 Git 平台的旧凭据,替换尖括号内容为实际域名(例如
github.com、gitee.com):secret-tool clear service git-credential host <Git平台域名>
方案2:凭据存储为 store
store 方案会把明文凭据存在本地文件,直接编辑对应文件删除旧条目即可:
- 打开凭据存储文件:
nano ~/.git-credentials - 找到对应 Git 平台的行,格式为
https://<用户名>:<密码/令牌>@<域名>,删除该行后按Ctrl+O保存、Ctrl+X退出。
验证修复
完成旧凭据清理后,按以下步骤验证推送:
- 强制使用带用户名的地址推送测试,跳过旧缓存:
git push https://<你的账号用户名>@<Git平台域名>/<仓库所属空间>/<仓库名>.git - 密码输入栏填写对应平台的个人访问令牌(PAT):目前主流Git平台均已不支持HTTPS方式用账号密码推送,即使未开启2FA也需要在平台后台生成对应权限的PAT作为密码使用。
- 如需永久生效,更新本地仓库的远程地址即可:
git remote set-url origin https://<你的账号用户名>@<Git平台域名>/<仓库所属空间>/<仓库名>.git
后续推送输入一次PAT后,Git会自动存储到凭据管理器,无需重复输入。
应急临时方案
如果不需要永久修复,仅需单次推送,可以直接临时禁用凭据助手,强制要求输入身份信息:git -c credential.helper= push origin <分支名>
内容的提问来源于stack exchange,提问作者mrhrifat
相关产品推荐
相关产品推荐

