【问题标题】:Cloning repository from MSA backed Azure DevOps using Visual Studio 2017 or 2019 and AAD account使用 Visual Studio 2017 或 2019 和 AAD 帐户从 MSA 支持的 Azure DevOps 克隆存储库
【发布时间】:2019-07-13 00:13:01
【问题描述】:

Microsoft 引入了邀请 AAD 用户加入 MSA 支持的 Azure DevOps 帐户的选项。这对于将帐户从“非托管”转换为“托管”的公司非常有用,首先将帐户所有权转移给 AAD 用户,然后以较慢的方法修复用户和许可混乱。

但是,当我尝试使用 Visual Studio 2017 或 2019 克隆存储库时,收到一条错误消息:

Git 因致命错误而失败。身份验证失败:{remote-url}。

或者,取决于您拥有的 Git 凭证管理器版本:

错误:无法生成 askpass:没有这样的文件或目录 致命:无法读取“{remote-url}”的用户名:终端提示已禁用`

从命令行克隆时,没有问题,之后,Visual Studio 也可以使用生成的 git 存储库。

【问题讨论】:

标签: git visual-studio-2017 azure-devops visual-studio-2019 git-credential-manager


【解决方案1】:

事实证明,Visual Studio 2017(截至 15.9.7)和 2019(预览版 3)仍附带 1.17 版的 Git Credential Manager,并且它们不使用全局安装的可用版本。

您可以在以下位置检查您是否有“旧”版本:

C:\Program Files (x86)\Microsoft Visual Studio\2017\{EDITION}\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core

如果他们是not on version 1.18.4, then they don't have the required fix for AAD authentication in MSA backed accounts

如果您有正确的版本,您应该会看到:

修复

这是官方不支持的,可能会产生不必要的副作用。但它对我有用;)。

要修复 Visual Studio,您可以使用 Git 凭据管理器的最新版本 zip 中的文件覆盖上述位置的二进制文件:

不幸的是,每次升级到更新/预览版时,您都需要重新应用这些文件,直到 Microsoft 决定将最新版本作为 Visual Studio 的一部分发布。 Visual Studio 安装程序会顽固地用 1.17 版本覆盖它。

【讨论】:

  • 谢谢杰西。 Visual Studio 2019 将在预览版 3 之后的下一个版本中提供 GCM 1.18.4。
【解决方案2】:

更新

最新版本的 os Visual Studio 2017 (15.9.10+) 现在包含版本 1.18.4 的 Git Credential Manager,应该可以解决许多由旧版本引起的问题。如果您需要更新版本的 GCMfW,同样的技巧也适用于更新版本。


在与 Chad Boles(在 Visual Studio 中维护团队资源管理器)聊天后,我们制定了另一种选择。首选覆盖 Visual Studio 安装中的文件,因为这可能会破坏未来的更新,并可能导致未来难以调试的问题。

  1. Install the latest GCMW-1.xx.xx.exe 在您的系统中和/或更新到最新版本的 Git for Windows,其中应包括 GCM。
  2. 更新您的全局 git 配置以指向 Git 凭证管理器的特定实现:

    c:\>git config --global --edit
    

    [credential] 部分更新为:

    [credential]
        helper = C:\\\\Program\\ Files\\\\Git\\\\mingw64\\\\libexec\\\\git-core\\\\git-credential-manager.exe
    

    确保路径指向可以在您的系统上找到最新的 Git 凭据管理器。注意使路径在全局 git 配置中工作所需的所有转义。

【讨论】:

    猜你喜欢
    • 2020-05-09
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 2020-04-03
    • 2020-04-29
    • 2020-01-21
    • 1970-01-01
    • 2017-07-31
    相关资源
    最近更新 更多