【问题标题】:GIT Fatal error: Authentication failed in Visual StudioGIT 致命错误:Visual Studio 中的身份验证失败
【发布时间】:2019-09-18 21:11:02
【问题描述】:

截至今天,我在 Azure-DevOps 中尝试对我的存储库使用 git 命令时遇到错误。这些存储库位于 DevOps 上的一个项目中,我可以使用相同的帐户访问该项目,并且没有显示任何最近对其进行更改的迹象。我可以采取的重现它的步骤是:

  1. 打开命令提示符并输入git fetch
  2. 出现一个提示登录的窗口
  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 环境中删除了我的个人资料并重新添加,但没有成功。

【问题讨论】:

  • 您可以登录 Azure DevOps 并查看 repo 的内容吗? (当有人可以访问团队项目但不能访问其存储库时,我也看到过类似的问题。)
  • 尝试将 GcfW 更新到最新版本,并可选择强制 Visual Studio 使用它:jessehouwing.net/…
  • @Bleep-Bloop 对我来说似乎是权限问题。你检查过项目的团队成员吗?确保您的帐户已添加到项目中并且您是管理员(不仅在组织中,尤其是在项目设置中)
  • 如果您手动创建 PAT 并在每次弹出身份验证屏幕时关闭它?在某些时候,它应该要求标准的用户/通行证提示。然后输入. 作为用户和生成的PAT作为密码。
  • 您还可以通过在调用 Git 之前在您的环境设置中添加一个变量来为凭证管理器打开额外的跟踪。运行setx GIT_TRACE %UserProfile%\git.log。运行setx GCM_TRACE %UserProfile%\git.log

标签: git visual-studio azure-devops visual-studio-2019


【解决方案1】:

尝试检查 git config credential.helper 的值。

如果您看到“经理”open the Windows Credentials Manager,并将 PAT(创建的个人访问令牌)作为密码(同时保持您的常规登录,与远程 URL 相关联)

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

【讨论】:

  • 谢谢,但问题仍然存在。我也已经尝试过删除并手动创建密钥。
  • @Bleep-Bloop 键?哪个键? SSH 密钥?该弹出窗口用于 HTTPS 身份验证(登录名/密码,或登录名/PAT--token)
  • 凭证管理器中使用新生成的 PAT 的密钥。
  • @Bleep-Bloop OK,然后使用它作为密码应该可以工作(在 Windows 凭据管理器中,在 azure 服务器 URL 条目中)
  • 不错。这个对我有用。我搜索了 Windows 凭据管理器,然后在通用凭据中,我在那里查找我的 git 存储库链接并编辑它的密码并保存更改
【解决方案2】:

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

[credential]
    helper = 

这实际上会关闭任何凭据管理器。然后,您可以在 Azure DevOps 中配置一组 Git 凭据或个人访问令牌并使用它直接连接。

它没有解释您遇到的问题。鉴于您的帐户似乎是 Machine Bound 和 AAD 帐户,很多事情都可以发挥作用。这包括 AAD Home-Realm Discovery 和 Single Sign-on 以及 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 删除为您的帐户存储的凭据

【讨论】:

    【解决方案3】:

    我遇到了同样的情况——在 VS 2017 中一切正常,但在 2019 年就不行了。我找到了this article,它建议我更新Git Credential Manager for Windows。我安装的版本(C:\Program Files\Git\mingw64\libexec\git-core\git-credential-manager.exe)是 3 岁。下载、安装,问题就解决了。

    【讨论】:

      【解决方案4】:

      在我与 Microsoft 来回发送许多邮件之后,我发现我的两个帐户不知何故开始相互冲突,从而导致奇怪的错误。一个很好的例子是,在 DevOps 中对 wiki 进行更改会在提交试用中显示与我登录的帐户不同的帐户。

      最终微软设法修复了它,从那以后我没有遇到任何问题。

      【讨论】:

      • 是的。那将是正确的 - 花了一年时间来解决 MS 问题。 ;-)
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        同样的错误(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 现在提示输入用户名/密码。

        【讨论】:

          猜你喜欢
          • 2019-12-22
          • 2021-01-10
          • 1970-01-01
          • 1970-01-01
          • 2016-09-29
          • 2016-09-20
          • 2023-03-26
          • 2017-07-28
          • 2017-08-07
          相关资源
          最近更新 更多