Linux系统下Git推送Bitbucket时认证失败求助
解决Git Push认证失败的步骤(Linux环境)
1. 先修正错误的配置
你的.git/config里[credential]区块配置name和email是无效的——这个区块用于设置凭据助手,和认证凭据无关。请删除该区块,只保留[user]区块即可,提交身份与认证是两个独立环节。
2. 检查远程仓库URL
执行以下命令查看当前项目的远程地址:
git remote -v
对比你其他正常推送的GitHub项目,确认URL是HTTPS格式还是SSH格式:
- 若为HTTPS格式:GitHub早已不再支持账号密码认证,必须使用**个人访问令牌(PAT)**替代密码。
- 若为SSH格式:检查SSH密钥是否配置正确。
3. 改用个人访问令牌(HTTPS场景)
- 登录GitHub账号,进入「Settings」→「Developer settings」→「Personal access tokens」,生成一个拥有
repo权限的PAT。 - 清除本地凭据缓存:
git credential-cache exit
- 重新执行
git push,在用户名输入框填写你的GitHub账号名,密码输入框填写刚才生成的PAT。
4. 切换到SSH协议(推荐长期解决方案)
如果HTTPS的令牌方式操作繁琐,可以改用SSH认证:
- 生成SSH密钥对(一路回车采用默认配置即可):
ssh-keygen -t ed25519 -C "your_email@example.com"
- 将公钥内容复制到剪贴板:
cat ~/.ssh/id_ed25519.pub
- 登录GitHub,进入「Settings」→「SSH and GPG keys」,点击「New SSH key」粘贴公钥并保存。
- 修改当前项目的远程URL为SSH格式:
git remote set-url origin git@github.com:你的用户名/仓库名.git
- 测试SSH连接:
ssh -T git@github.com
看到Hi 你的用户名! You've successfully authenticated...的提示后,再执行git push即可。
5. 检查全局凭据助手配置
如果上述方法无效,查看全局Git的凭据助手设置:
git config --global --list | grep credential
如果有credential.helper=store,可以检查存储的凭据文件(通常是~/.git-credentials),删除对应仓库的条目后重新认证。
内容的提问来源于stack exchange,提问作者Ahdee
相关产品推荐
相关产品推荐

