You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新版GitHub要求使用身份验证密钥替代密码时推送代码报错如何解决

报错原因

在你描述的GitHub身份验证规则升级场景下,该报错的核心原因是GitHub已于2021年8月14日全面停止了HTTPS协议下使用账户密码进行身份校验的支持,当你使用HTTPS格式的远程仓库地址执行推送操作时,仍然使用旧的密码验证逻辑就会被平台拒绝,最终触发推送失败的报错。

额外可能的诱因:

  • 本地系统密钥链/凭证管理器中存储的GitHub旧密码凭证没有更新,Git调用旧凭证校验失败
  • 远程仓库存在本地没有的最新提交,本地分支版本落后于远程分支,也会触发同格式的报错

你遇到的原始报错信息如下:

error: failed to push some refs to 'https://github.com/Kalim22/Small-projects.git';

报错界面截图:
报错界面截图

解决方法

根据你的使用习惯可以选择以下任意一种方案:

  • 方案1:改用SSH密钥验证(更推荐,无需频繁维护凭证)

    1. 本地生成SSH密钥对,将公钥内容上传到GitHub账户设置的「SSH and GPG keys」列表中
    2. 执行命令修改本地仓库的远程地址为SSH格式:
      git remote set-url origin git@github.com:Kalim22/Small-projects.git
    3. 重新执行推送操作即可正常完成验证
  • 方案2:继续使用HTTPS协议,用个人访问令牌(PAT)替代密码

    1. 登录GitHub账户,依次进入「Settings - Developer settings - Personal access tokens」,生成新的令牌,勾选需要的repo相关权限后保存令牌值
    2. 先删除本地系统凭证管理器中存储的GitHub旧密码凭证,重新执行推送操作
    3. 弹出验证提示时,用户名正常填写你的GitHub账户名,密码栏输入刚才生成的个人访问令牌即可完成验证
  • 方案3:先排查版本落后问题(排除身份验证问题后使用)
    如果确认身份验证配置没有问题,可先拉取远程的最新提交合并到本地后再推送,执行命令:
    git pull origin 你的对应分支名(通常为main/master)
    合并完成且解决所有冲突后,重新执行git push即可

内容的提问来源于stack exchange,提问作者kalim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:57:02