1042

我使用 GitHub 已经有一段时间了,到目前为止,我对, 和, 都很好git add,没有任何问题。突然我有一个错误说:git commitgit push

致命:身份验证失败

在终端中,我克隆了一个存储库,处理了一个文件,然后我曾经git add将该文件添加到提交日志中,当我这样做时git commit,它运行良好。最后,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 = ############
4

42 回答 42

1607

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

创建个人访问令牌

如果将存储库设置为 HTTPS,您可能还需要更新存储库的源。执行此操作以切换到 SSH:

git remote -v
git remote set-url origin git@github.com:USERNAME/REPONAME.git
于 2014-01-09T17:59:19.980 回答
919

在 Windows 上,尝试以下步骤来编辑删除保存的凭据:

  1. 点击开始
  2. 类型:凭据管理器(在 Windows 10 上,位于“开始设置”下。然后搜索“凭据管理器”)
  3. 查看Windows 凭据管理器快捷方式并双击它以打开应用程序。
  4. 打开应用程序后,单击“ Windows 凭据”选项卡。
  5. 找到要删除/更新的凭据。它们将以“git:”开头,并且可能以“ada:”开头
  6. 单击凭据条目。它将打开条目的详细信息视图。
  7. 根据需要单击EditRemove并确认。
  8. 起泡,冲洗,必要时重复。

在此处输入图像描述

于 2018-05-01T06:41:32.457 回答
127

如果您更改了 git 服务帐户 (Git) 的登录名或密码,就会发生这种情况。您还需要在Windows 凭据管理器中更改它。在 Windows 搜索菜单中键入“凭据管理器”打开它。

Windows Credentials Manager->Windows Credential 并在 Generic Credentials 下编辑您的 git 密码。

于 2019-10-14T07:04:29.890 回答
124

也许您最近更改了 Git 帐户的密码。您可以尝试git push使用以下-u选项:

git push -u origin branch_name_that_you_want_to_push

执行上述命令后,它会要求输入密码。提供您的更新密码。

于 2017-05-10T07:44:19.300 回答
99

在 Windows 上,这对我有用,它还记得我的凭据:

  1. 运行Git Bash

  2. 指向存储库目录

  3. git config --global credential.helper wincred

于 2016-01-04T14:10:39.850 回答
82

首先,您可以确保使用正确的 URL:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

然后,如果它以前可以工作,并且没有询问您的用户名,那一定是因为您已将凭据(登录名/密码)存储在$HOME/.netrc文件中,如此处所述。您可以仔细检查这些设置,并确保您的代理(如果有)没有更改。

如果这仍然不起作用,您可以切换到 SSH URL:

git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git

但这意味着您已经在您的帐户设置中发布了您的 SSH 公钥。


对于 Visual Studio Code,另请参阅“ git push:缺少或无效凭据。致命:'https://github.com/username/repo.git' 的身份验证失败

您可以取消选择该设置git.terminalAuthentication以避免出现错误消息。

于 2013-07-16T08:12:26.847 回答
75

基本上我的凭证已经过期,我正面临这个问题。

以下两个命令帮助了我:

git config --global --unset credential.helper

git config credential.helper store

下次您尝试推送时,它会要求您提供凭据。

请遵循以下准则以获取有关用户名和密码的安全和非安全存储的更多详细信息:

于 2018-04-30T18:07:28.763 回答
38

在 Windows 上,如果您在输入正确的密码和用户名时发现身份验证错误问题,那就是 Git 问题。为了解决这个问题,当你在你的机器上安装 Git 时,取消选中Enable Git Credential Manager选项。

在此处输入图像描述

于 2017-03-27T06:52:32.950 回答
30

我认为由于某种原因 GitHub 期望该 URL 没有子域 www。当我使用(例如)

git remote set-url origin https://www.github.com/name/repo.git

它给出以下消息:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

但是,如果我使用

git remote set-url origin https://github.com/name/repo.git

它工作得很好。对我来说没有太大意义......但我想记得不要将 www 放在 GitHub 存储库的远程 URL 中。

另请注意,GitHub 存储库网页上提供的克隆 URL 不包含 www。

于 2014-01-28T02:30:42.360 回答
30

我遇到了同样的错误。我尝试了本页中提到的所有解决方案,但它们都不起作用。最后,我找到了解决方案。

如果有时您的系统密码最近随时更改,则会出现此类错误。它将尝试从旧密码进行验证。因此,请按照以下步骤操作:

  1. 转到控制面板
  2. 单击用户帐户
  3. 凭据管理器下
  4. 转到管理 Windows 凭据
  5. 转到通用凭证
  6. 展开 Git 服务器选项卡
  7. 单击从保管库中删除
  • 此外,您可以直接单击Edit并更改存储在此处的密码。
于 2019-06-10T07:46:53.910 回答
16

在您尝试上述所有操作之前,请再试git push一次,是的,它对我有用。

于 2020-09-14T14:13:07.310 回答
14

我不太确定我做了什么来得到这个错误,但是这样做:

git remote set-url origin https://...

对我不起作用。然而:

git remote set-url origin git@bitbucket.org:user/repo

不知何故奏效了。

于 2014-02-04T19:15:40.530 回答
12

我遇到过

git fetch

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

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

令人惊讶的是,正确的答案在评论中的某个地方,但不在答案中(其中一些真的很奇怪!)。

您需要转到控制面板凭据管理器Windows 凭据并更新您的git 密码:http://your_repository_address

于 2017-06-29T10:37:31.183 回答
12

我正在添加到与 Git 链接的 Bitbucket,并且不得不删除存储的密钥,因为这导致了致命错误。

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

 rundll32.exe keymgr.dll, KRShowKeyMgr

我删除了负责登录的密钥,下次将文件推送到存储库时,系统会提示我输入凭据并输入正确的凭据,从而成功推送。

于 2020-05-13T14:30:39.223 回答
11

同样的错误(Windows、Git Bash 命令行)。使用 https 应该会提示输入登录凭据,但会出现错误:

$ git pull origin master
fatal: Authentication failed for 'https://github.com/frmbelz/my_git_project.git'
$ git config -l
...
credential.helper=manager
...

$ git config --global --unset credential.helper
$ git config --system --unset credential.helper

git pull现在提示输入用户名/密码提示。

于 2021-07-08T20:53:24.810 回答
10

就我而言,我最近更改了我的 windows 密码,并为 git 相关操作(拉、推、获取等)配置了 SSH 密钥,在遇到“致命:身份验证失败”错误后,我在 windows 中更新了密码所有以 git:... 开头的项目的凭据管理器(控制面板\用户帐户\凭据管理器),然后再试一次,这次成功了!

于 2020-03-13T14:27:14.783 回答
8

我有同样的问题。我以这种方式设置 URL:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

我还从配置文件中删除了这个条目:askpass = /bin/echo.

然后“git push”向我询问用户名和密码,这次成功了。

于 2013-11-26T07:03:47.017 回答
5

如果您在 GitHub 帐户上启用了双因素身份验证,请登录到您的 GitHub 帐户并转到

新的个人访问令牌

要生成新的访问令牌,复制该令牌,然后粘贴为终端中的身份验证密码。

于 2018-05-10T16:33:15.440 回答
4

只需从您的.config文件更改:

url = http://www.github.com/###user###/Random-Python-Tests

到:

url = http://###user###@github.com/###user###/Random-Python-Tests
于 2016-07-07T15:25:28.393 回答
4

如果您在 Windows 上并尝试推送到具有域用户作为存储库用户 (TFS) 工作的 Windows 服务器,请尝试使用Internet Explorer进入 TFS URL(即http:\\tfs)。输入您的域帐户凭据并显示该页面。

注意:只能使用Internet Explorer!其他浏览器不会更改您的系统凭据。

现在转到Git Bash并更改存储库的远程用户,如下所示:

git config user.name "domainName\userName"

并做了。现在你可以推了!

于 2018-07-05T09:13:26.633 回答
4

我昨天开始在Ubuntu 20.04的Visual Studio Code上遇到这个问题。

我没有对我的 GitHub 凭据进行任何更改,我也没有更改项目中的任何内容,但我运行任何 git 命令来与我的远程分支进行通信,例如:

git pull origin dev

我收到以下错误:

远程:未找到存储库。致命:“https://github.com/MyUsername/my-project.git/”的身份验证失败

这对我有用

我尝试重新克隆项目,然后运行 ​​git pull 命令,但它不起作用。

git clone https://my-git-url

我尝试使用以下命令再次设置我的凭据,但仍然没有运气:

git config --global user.email "email@example.com"
git config --global user.name "John King"

我尝试使用以下命令删除远程存储库并重新添加它,但仍然没有运气:

git remote remove origin
git remote add origin https://my-git-url

最后,我决定尝试使用我的默认 Ubuntu 终端,它运行良好我最大的猜测是,这是Visual Studio Code的一个错误,它是在那之前几个小时进行的最后一次更新(请参阅屏幕截图,显示发布是在我遇到问题的同一天完成的)。我的意思是我使用 设置 Visual Studio Code snap,所以它可能在那之前几个小时在后台进行了更新。

在此处输入图像描述

希望他们能修复它,并且 git 远程操作会再次正常。

于 2021-11-13T10:15:18.597 回答
3

更新计算机密码时收到上述错误消息。使用以下步骤重置我的 git 凭据:

转到控制面板 > 用户帐户 > 凭据管理器 > Windows 凭据。您将在列表中看到 Git 凭据(例如 git:https://)。单击它,更新密码,然后从您的 Git bash 执行 git pull/push 命令,它不会再抛出任何错误消息。

于 2021-05-18T11:02:11.457 回答
2

对我来说,我忘记了我在 github.com 上更改了密码,而我用于 shell 身份验证的钥匙串从未更新为那个新密码。

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

于 2016-11-05T17:22:50.290 回答
2

我尝试了令牌验证方法并让它工作了大约 3 次,并为此浪费了大约 2 小时的时间。出于某种原因,它对我们公司来说效果不佳。

我的解决方案是将身份验证方法从 HTTPS 更改为 SSH。这是一个 Github 指南(https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) .

创建 SSH 密钥后,请记住更改 SSH 地址来源:

git remote add origin git@github.com:user/repo.git
于 2020-05-27T09:07:30.160 回答
2

尝试推送到 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 密钥

  1. ~/.ssh从目录复制本地公共 ssh 密钥

  2. 粘贴到Github > Settings > SSH and GPG Keys > New SSH Key

  3. 试试ssh -T git@github.com 这应该输出

    你好xxxx!您已成功通过身份验证,但 GitHub 不提供 shell 访问权限。

于 2021-08-12T09:34:03.250 回答
1

只是在这里插话,对我来说解决问题的是我只是取消了初始提示,SSH 用我的Bitbucket帐户打开,我在那里输入密码,一切都按预期工作。

于 2017-03-26T18:36:31.583 回答
1

我在 Windows 上遇到了同样的问题。大多数时候,由于使用多个 Git 帐户,我通常会遇到这个问题。如果您使用的是 Windows,请以管理员身份打开终端并尝试再次运行命令。确保您具有管理员访问权限。

于 2017-06-26T06:02:56.993 回答
0

我也遇到了错误(这就是我在这里登陆的原因),但没有一个建议对我有用。这是我第一次尝试将本地 Git 存储库部署到Azure

当我收到此错误时,我在尝试几次后重置了我的凭据(通过单击 Azure 中的链接)。问题是此时它告诉我我的用户名已经被占用,所以我也将我的用户名更改为另一个。

最后,我手动删除了本地驱动器上的.git文件夹,并重新部署它没有问题。

于 2015-02-11T18:00:26.950 回答
0

问题陈述: “git 致命身份验证失败”。我正在使用Bitbucket

解决方案:

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

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

[push]
    default = simple
于 2015-04-15T09:19:25.150 回答
0

如果问题仍然存在,请使用正确的凭据:

如果您使用的是 Android Studio 2.1 测试版,那么这是一个错误。升级到 beta 2(3 MB 更新文件)。这对我有用。

于 2016-04-16T14:12:56.947 回答
0

确保您具有推送的写入权限。

read ***write*** admin 
于 2017-04-04T03:41:43.807 回答
0

确保您的 SSH 密钥已添加到当前的 SSH 会话中。

  1. cat ~/.ssh/id_rsa.pub将SSH 和 GPG 密钥下的输出复制到您的 GitHub 设置。

  2. 使用 更新您当前的 SSH 会话ssh-add ~/.ssh/id_rsa.pub

我正在使用安装了OpenSSH的 Windows PowerShell

于 2018-05-03T17:38:23.077 回答
0

Android Studio Canary build 3.1+ 中,如果您使用的是 Android Studio Git 工具,那么您可以使用以下内容:

  • 点击安卓工作室
  • 单击首选项...
  • 进入版本控制GitHub
  • 此处将身份验证类型更改为密码
  • 此步骤将要求您输入登录名和密码。输入您的 GitHub 用户名作为登录名,输入 GitHub 密码作为密码。
  • 点击Test按钮。

如果连接成功,那么你就完成了,你可以使用 Android Studio GitHub GUI 客户端了。

于 2018-05-14T04:56:07.420 回答
0

如果您使用 SSH 并使用 HTTPS 进行克隆,这将不起作用。

使用 SSH 克隆,然后推送和拉取应该按预期工作!

于 2018-08-23T23:31:45.523 回答
0

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

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

只需直接在 Wincred GUI 中更新密码即可:只需查找一个git:https://<your-url>条目。

于 2019-09-03T14:00:19.880 回答
0

这发生在我们在从 Gitlab 登录之前强制“双因素身份验证”之后。我们必须将 id_rsa.pub 中的文本粘贴到 Gitlab,然后使用终端在 VS 代码中重新引入存储库。

于 2020-02-20T08:17:46.387 回答
0

这样,我在 GIT GUI 和 git bash 中解决了我的访问被拒绝问题。 SSH 密钥

此 SSH 密钥复制粘贴在 GitHub 访问令牌中。访问令牌

对我来说一切都很好,我也尝试了 Windows 凭据管理器,但问题也没有解决。然后突然间,我从防火墙中弹出,这是所有背后的罪魁祸首。在我手动单击允许后,我可以获取或推送到 GitHub。

于 2020-09-07T10:32:56.350 回答
0

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

于 2021-07-11T13:57:00.313 回答
0

给定解决方案:使用个人访问令牌是绕过此问题的一种方法。我没有启用双因素身份验证,但每当我登录新电脑时,我都会收到电子邮件验证码来验证电脑。

解决方案: 您可以在浏览器上登录 GitHub 并验证您的身份,这将使 GitHub 知道信任该 PC。之后,使用 bash 登录,这一次您的登录应该照常工作,因为现在您已被列入白名单。


注意:如果您有任何现有的 GitHub 帐户并想切换,则将其删除Credentials Manager > Windows Credentials (Generic Credentials Section)。这样做将允许您在进行另一个 git 操作时登录。

于 2021-07-11T17:55:47.487 回答
0

启用凭据助手为我解决了这个问题。

于 2021-11-26T17:13:30.080 回答
-1

我的解决方案是:

  1. 进入C:\Users\USERNAME\AppData\Local\Atlassian\SourceTree
  2. 查找文件passwd
  3. 右键单击该文件打开 Notepad
  4. 您将看到一个用户名和密码列表,例如:

用户名@dev.azure.com AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAMUOX3Q56PEuXEBSDFAFAASEH...

  1. 找到输入错误的用户名和密码,删除
  2. 保存文件,然后关闭它
  3. SourceTree将在下一次推送或获取时再次询问您的用户名和密码
于 2021-12-29T05:01:35.567 回答
-2

当然,2FA 需要令牌而不是密码来进行身份验证。

如果您在 Windows 系统中再次遇到同样的问题

  1. 卸载 Git
  2. 下载并安装最新的“Windows 版 Git”

这将解决您的问题。

于 2022-02-05T06:26:12.807 回答