GIT致命错误:在Visual Studio中身份验证失败

16

截止目前,我在使用 Azure-DevOps 中的存储库时尝试使用 git 命令时出现错误。 存储库位于 DevOps 上的项目中,我可以使用相同的帐户访问该项目,并且没有任何最近更改的迹象。 我可以重复此错误的步骤是:

  1. 打开命令提示符并输入 git fetch
  2. 窗口出现提示登录 Login
  3. 我点击账号
  4. 没有提示密码,但是收到了创建了 PAT 的电子邮件
  5. 命令提示符产生错误

错误:

fatal: Authentication failed for `<link to repository>`

到目前为止我尝试过的事情:

  • 重新启动电脑
  • Visual Studio 上退出并登录
  • 删除 .IdentityService 文件夹
  • 卸载并重新安装 GIT
  • Visual Studio Installer 中卸载并重新安装 GIT For Windows
  • 删除缓存文件夹 %LOCALAPPDATA%\Microsoft\Team Foundation\7.0\Cache
  • 删除缓存文件夹 %LOCALAPPDATA%\Microsoft\Team Foundation\8.0\Cache
  • Credential Manager 中删除 GITVS 的密钥
  • 还尝试了许多在网上找到的 '解决方法',但没有解决我的问题

当前正在运行:

  • GIT 2.21.0-64位
  • Visual Studio 2019

编辑:

我尝试使用带有 Azure Repos 1.149.2 扩展的 Visual Studio Code 并且得到同样的错误。它显示 Microsoft 页面以输入我的设备登录代码,然后授权,但使用 git 命令会导致相同的错误消息。

我还将我的个人资料从 Azure DevOps 环境中删除并重新添加,但没有成功。


1
你能登录Azure DevOps并查看存储库的内容吗?(我曾经遇到过类似的问题,当某人有访问团队项目但没有访问其存储库时。) - Richard
1
尝试将GCfW更新到最新版本,并可选择强制使用它的Visual Studio:https://jessehouwing.net/configure-visual-studio-to-use-a-different-git-credential-manager-for-windows/ - jessehouwing
1
@Bleep-Bloop 看起来像是权限问题。你有检查过项目的团队成员吗?确保你的账户已经被添加到该项目中,并且你是管理员(不仅在组织中,特别是在项目设置中)。 - Jabberwocky
1
如果你手动创建一个PAT并且每次弹出认证窗口时都关闭它,会怎么样?在某个时刻,它应该会要求输入标准的用户名和密码提示。然后输入“.”作为用户名,以及生成的PAT作为密码。 - jessehouwing
1
您还可以在调用 Git 之前通过在环境设置中添加变量来为凭据管理器打开额外的跟踪。运行 setx GIT_TRACE %UserProfile%\git.log。运行 setx GCM_TRACE %UserProfile%\git.log - jessehouwing
显示剩余5条评论
8个回答

13

尝试并检查git配置credential.helper的值。

如果看到“manager”,打开Windows凭据管理器,并将PAT作为密码输入——即创建的个人访问令牌(同时保留常规登录关联到远程URL)。

然后再次尝试,看问题是否仍然存在。


1
谢谢,但问题仍然存在。我已经尝试过删除并手动创建密钥。 - NotFound
@Bleep-Bloop Key?哪个键?SSH密钥?那个弹出窗口是用于HTTPS身份验证(登录/密码或登录/PAT-令牌)。 - VonC
使用新生成的PAT在凭据管理器中设置密钥。 - NotFound
@Bleep-Bloop 好的,那么将其作为密码使用应该可以在Windows凭据管理器中的Azure服务器URL条目中正常工作。 - VonC
1
不错,这个方法对我有效。我在 Windows 凭据管理器中搜索了我的 Git 仓库链接,然后在通用凭据中查找并编辑了密码,并保存了更改。 - aj go

12

为了让Git凭据管理器停止干扰,您可以将以下内容添加到您的全局git配置中:

[credential]
    helper = 

这将有效地关闭任何凭据管理器。在Azure DevOps中,您可以配置一组Git凭据或个人访问令牌,并使用它来直接连接。

这并没有解释您遇到的问题。考虑到您的帐户似乎是机器绑定和AAD帐户,可能会涉及很多事情。这包括AAD Home-Realm Discovery 和单点登录以及Azure Active Directory Guest账户。

另一个可能出现的问题是Windows凭据存储区,其中包含多个位置存储Azure DevOps和Git凭据。最后,用于登录Visual Studio 2019检索其许可证的帐户可能会有问题。

根据您提供的信息,我们几乎不可能在没有亲自看到您的情况的情况下帮助您解决问题。如果可能的话,我建议提交一个Azure支持请求,以便工程师能够与您一起查看。

可选运行

git-credential-manager.exe erase

并传入以下数据

protocol=https
host=dev.azure.com
path=/jessehouwing/vsts-extensions/_git/vsts-github-tasks
{newline}
告诉Git删除存储在您帐户中的凭据。

4

我遇到了同样的问题 - 在VS 2017中一切正常,但在2019中不能工作。我找到了这篇文章,它建议我更新Windows Git凭据管理器。我的已安装版本(位于C:\Program Files\Git\mingw64\libexec\git-core\git-credential-manager.exe)已经有3年了。我下载安装后问题就解决了。


2
在我的情况下,经过与微软多次邮件往返后,发现我的两个帐户出现了某种冲突,导致出现奇怪的错误。一个很好的例子是,对DevOps中的wiki进行更改时,在提交尝试中显示的帐户与我登录的帐户不同。最终微软设法解决了这个问题,自那以后我就没有遇到过任何问题。

是的,大概就是这样——花了一年时间来解决一个微软问题。;-) - Tim Harker

2
我也遇到了这个问题。 以下是解决方法。
  1. 打开Windows凭据管理器: 控制面板(cpl)-> 用户帐户 -> Windows 凭据 -> 通用凭据 Windows凭据管理器截图

  2. 找到你在克隆时出现问题的URL(在通用凭据下),它将以git为前缀: 然后删除该条目并关闭控制面板。 删除条目的截图

  3. 关闭Visual Studio(如果已打开),重新打开并尝试克隆,Visual Studio将提示输入凭据。

希望这可以帮助您。 :)

我必须做同样的事情,只是要删除Windows凭据而不是通用凭据。但是在我删除它之后,它又开始工作了。 - mheskamp

1

我在VS2019中遇到了类似的问题,我更换了笔记本电脑后,尽管我使用凭据管理器删除和更改了凭据,它仍然无法进行身份验证。我与Assembla存储库链接,并且在团队资源管理器窗口下的存储库设置中,我注意到有一个复选框可以覆盖全局用户名和电子邮件设置,这些设置与我的Assembla登录不同。


0
相同的错误(Windows、Git Bash 命令行、Visual Studio、bitbucket)。使用 https(而不是 ssh),应提示登录凭据,但出现错误(可能是因为我的 bitbucket 凭据已更改):
$ git pull origin master
fatal: Authentication failed for 'https://bitbucket.../my_git_project.git'

$ git config -l
...
credential.helper=manager
...

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

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


0

我在使用 Visual Studio for Mac 2022 时遇到了类似的问题。这是我第一次在我的 Mac 上安装 VS 并尝试克隆仓库到本地,第一次尝试时我错误地输入了我的密码而不是个人访问令牌(PAT)。我通过进入“钥匙串访问”,搜索“github”,选择与我尝试克隆存储库时相对应的时间的选项,并将密码更改为我的 PAT 来解决这个问题。下一次我尝试克隆存储库时,VS 会问我是否可以使用“钥匙串访问”中的项,我授权后它就可以正常工作了。

相关的 GitHub 文档:https://docs.github.com/en/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接