我已经使用GitHub有一段时间了,git添加、git提交和git推送都没问题,到目前为止还没有任何问题。突然我出现了一个错误

fatal:认证失败

在终端中,我克隆了一个存储库,处理了一个文件,然后我使用git add将文件添加到提交日志中,当我做git提交时,它工作得很好。最后,git push请求用户名和密码。我输入正确,每次我这样做,它都会显示相同的错误。

这个问题的原因是什么,我该如何解决它?

.git/config的内容如下:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

当前回答

这个问题在GitHub引入双因素身份验证之前就已经提出了,然而,自从GitHub引入2FA以来,许多人都遇到了这个错误。

每次你尝试推送时,GitHub都会要求验证,如果你想避免重复提示,你应该使用GitHub -cli,它非常轻量级,你可以安装apt, yum, dnf和pacman。

安装github-cli后,

输入以下命令

gh auth login

选择要验证的帐户类型 选择HTTPS或SSH(根据需要) 使用web浏览器登录或根据您的轻松程度使用访问令牌进行身份验证。

访问令牌可以从GitHub > Settings > Developer-settings >生成访问令牌,复制令牌并粘贴到终端,这是一次性的代码,所以在终端上进行身份验证之前,请确保您不会丢失代码

其他回答

我刚刚为我的Github帐户启用了双因素身份验证,所以我禁用了双因素身份验证,我可以用我的UID和PWD登录

如果这是有帮助的,因为这个问题现在是git的http身份验证问题的一个热门:Windows凭据管理器已经正确地存储了我的密码,并且由于我使用git LFS,我配置了一个http URL而不是通常的ssh://。

我的问题是,我的公司密码策略强制更改帐户密码,但我从未更新我存储的凭据(因为我总是使用ssh密钥)。

简单地在Wincred GUI中直接更新密码就可以了:只需查找git:https://<your-url>条目。

在从Gitlab登录之前强制执行“双因素认证”后,我们就遇到了这种情况。我们必须将文本粘贴到id_rsa中。pub到Gitlab,然后使用终端在VS代码中重新引入存储库。

我的解决方案是:

C:\Users\USERNAME\AppData\Local\Atlassian\SourceTree的访问权限 找到文件passwd 右键单击该文件,用记事本打开 你会看到一个用户名和密码列表,如下所示:

username@dev.azure.com AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAMUOX3Q56PEuXEBSDFAFAASEH...

找到您输入错误的用户名和密码,并删除它 保存文件,并关闭它 SourceTree将在下一次推送或获取时再次询问您的用户名和密码

如果你在你的GitHub帐户上启用了双重身份验证,然后登录到你的GitHub帐户,然后转到

新的个人访问令牌

若要生成新的访问令牌,请复制该令牌,并将其作为密码粘贴到终端中进行身份验证。