GitHub开启双因素认证后使用Git Bash推送报错如何解决?
问题根因
开启GitHub双因素认证(2FA)后,原账户密码不再支持HTTPS协议下的Git操作身份校验,因此推送时会抛出username or password is incorrect错误。
解决方案
提供两种常用解决方式,可根据自身使用习惯选择:
方案1:使用个人访问令牌(PAT)替代密码(适配HTTPS连接场景)
- 登录GitHub账户,进入右上角个人「Settings」页面
- 左侧菜单栏找到
Developer settings项,依次选择Personal access tokens->Tokens (classic) - 点击
Generate new token,选择Generate new token (classic) - 按需填写令牌备注、过期时长,勾选
repo分类下的全部权限后点击生成按钮 - 复制生成的PAT(生成后仅展示1次,请及时保存)
- 回到Git Bash执行推送操作,密码输入环节直接粘贴该PAT即可完成验证
- 如需本地缓存凭证避免重复输入,执行命令:
git config --global credential.helper store,后续操作无需重复输入令牌
方案2:改用SSH密钥验证(无需重复输入验证信息,更推荐长期使用)
- 打开Git Bash,执行命令生成SSH密钥:
ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱",全程按回车确认即可 - 执行命令查看公钥内容:
cat ~/.ssh/id_ed25519.pub,复制输出的全部公钥内容 - 登录GitHub进入个人设置页面,找到
SSH and GPG keys选项,点击New SSH key - 填写密钥备注,将复制的公钥粘贴到对应输入框后保存
- 回到本地仓库目录,修改远程仓库地址为SSH格式:
git remote set-url origin git@github.com:你的GitHub用户名/对应仓库名.git - 重新执行推送操作即可直接验证通过
内容的提问来源于stack exchange,提问作者Chandima Samarakoon
相关产品推荐
相关产品推荐

