我已经使用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.com上更改了密码,我的shell身份验证的钥匙链从未更新到新密码。

从我的钥匙链中删除所有Git,然后重新运行Git请求帮助解决了这个问题,再次提示我输入新密码。

其他回答

我得到以下错误时,试图推动到github远程

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

解决方案 github账户上的SSH密钥丢失

从~/复制本地公共ssh密钥。ssh目录 粘贴到Github >设置> SSH和GPG密钥>新的SSH密钥 试试ssh -T git@github.com 这应该会输出 嗨xxxxx !您已成功验证,但GitHub不提供shell 访问。

如果你在你的GitHub帐户中启用了双因素身份验证,你 将无法使用您的帐户密码通过HTTPS推送。而不是 您需要生成一个个人访问令牌。这可以在 GitHub帐户的应用程序设置。使用此令牌作为您的 密码应该允许您通过HTTPS推送到远程存储库。 像往常一样使用你的用户名。

创建个人访问令牌

如果存储库设置为HTTPS,您可能还需要更新存储库的起源。切换到SSH:

git remote -v
git remote set-url origin git@github.com:USERNAME/REPONAME.git

我添加到Bitbucket与Git链接,必须删除存储的密钥,因为这导致了致命的错误。

为了解决这个问题,我打开命令提示符并运行

 rundll32.exe keymgr.dll, KRShowKeyMgr

我删除了负责登录的密钥,下次我将文件推到repo时,系统会提示我输入凭据,并输入正确的凭据,结果成功推入。

问题说明:“git fatal authentication failed”。我在用Bitbucket。

解决方案:

我只是删除了使用Bitbucket访问管理的用户,然后添加了相同的用户。.gitconfig文件很简单:

[user]
    name = BlaBla
    email = blabla@gmail.com

[push]
    default = simple

我遇到过

git fetch

fatal: Authentication failed for 'http://...."

在我的Windows密码过期并被更改之后。使用Windows凭据管理器多次获取、重新启动甚至重新安装Git都没有帮助。

令人惊讶的是,正确答案在评论中,而不是在答案中(其中一些真的很奇怪!)

你需要进入控制面板→凭据管理器→Windows凭据并更新git的密码:http://your_repository_address