Git推送GitHub时持续要求凭据,密码验证失效求助
解决GitHub推送时密码认证失败的问题
问题根源:你当前配置的远程仓库地址是HTTPS协议(https://github.com/user/shop.git),即便你已经添加了SSH密钥,Git依然会尝试使用HTTPS的用户名/密码认证方式,而GitHub早在2021年8月就取消了这种认证支持,所以会报错。
下面给你两种有效解决方法,优先推荐第一种(因为你已经配置好SSH密钥了):
方法一:切换远程仓库地址为SSH格式
- 先确认当前远程地址:
输出会显示当前的HTTPS地址。git remote -v - 删除现有远程地址:
git remote remove origin - 添加SSH格式的远程地址(把
user换成你的GitHub用户名,shop换成仓库名):git remote add origin git@github.com:user/shop.git - 重新执行推送:
这次Git会自动用你之前配置的SSH密钥认证,无需输入用户名和密码。git push -u origin main
方法二:使用个人访问令牌(PAT)替代密码(适合不想切换SSH地址的情况)
- 登录GitHub账号,生成一个具备「仓库读写权限」的个人访问令牌(PAT),生成后务必保存好,因为只能查看一次。
- 再次执行
git push -u origin main,当Git提示输入用户名时,输入你的GitHub用户名;提示输入密码时,输入刚才生成的PAT即可。 - 若想避免每次推送都输入凭据,可配置Git凭据缓存:
- Mac系统:
git config --global credential.helper osxkeychain - Windows系统:
git config --global credential.helper wincred - Linux系统:
git config --global credential.helper libsecret
- Mac系统:
内容的提问来源于stack exchange,提问作者user3652775
相关产品推荐
相关产品推荐

