(诊断)解决GitHub使用双因子身份认证“Two-Factor Athentication”后无法git push 代码的“fatal: Authentication failed for ...”...

  在GitHub上采取双因子身份认证后,在git push 的时候将会要求填写用户的用户名和密码,用户名就是用户在GitHub上申请的用户名,但是密码不是普通登录GitHub的密码。

  一旦采取双因子身份认证,登录GitHub的时候既需要输入用户名和密码,还需要输入一个即时的验证码,这样可以对Git账户提供双重的安全保障。但是git push 却怎么也没法推送到远端repo,总是提示身份认证错误:“fatal: Authentication failed for ...”

  查了很多国内的解决方案,只有一个在评论里提及了一下GitHub的two-factor authentication,但是具体怎么做还是没有说。

  没办法,还是得依靠Google,终于在StackOverflow中找到了提示,如果你启用了GitHub的双因子身份认证,那么你在push代码前需要提供的是一个token而不是你平时登录的密码,这个token的获得方式在GitHub中有详细记录,下面是链接,如果有遇到类似错误的Git用户,希望本文能够帮助到你。

  “Creating an access token for command-line use”

  为了防止链接作废,下面是操作截图:

  

### 解决 Git 推送时身份验证失败的方法 当遇到 `git push` 身份验证失败的问题时,可能的原因包括用户名或密码不正确、SSH 密钥配置不当以及网络连接问题等。以下是详细的解决方案: #### 验证凭证管理器设置 如果使用 HTTPS 方式访问远程仓库,则可以尝试更新本地存储的凭据。对于 Windows 用户来说,可以通过控制面板中的“Windows 凭据”来删除旧有的 GitHub/GitLab/Gitee 的登录信息[^2]。 #### 使用 SSH 进行认证 另一种方式是切换到基于 SSH 的 URL 来代替默认的 HTTPS 地址。这需要先生成一对新的 SSH 密钥并将其添加至个人账户的安全设置里;之后修改 `.git/config` 文件内的 `[remote "origin"] url=` 字段为对应的 SSH 形式的地址[^3]。 ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" cat ~/.ssh/id_rsa.pub # 将公钥复制粘贴给托管服务提供商 ``` #### 更新令牌权限范围 有时即使提供了正确的用户名和密码也会收到此错误提示,特别是当你正在使用的 OAuth Token 或 Personal Access Tokens 不具备足够的权限去执行某些操作时。确保所用 token 已经被授予了必要的 scope 访问级别。 #### 检查防火墙与代理服务器 部分企业内部环境会部署 Web 应用程序防火墙(WAF)或者强制所有的 HTTP(S)请求都经过特定网关设备处理,在这种情况下应当联系 IT 支持人员确认是否有任何阻止正常克隆/推送行为的规定存在[^1]。 #### LFS 对象上传重试机制 针对大型文件系统的特殊场景下发生的超时情况,建议按照官方文档指导分批次提交大尺寸二进制资源,并利用 `git lfs push --all origin master` 命令实现增量同步功能以提高成功率[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值