我最近构建了一个 TFS 2018 服务器并将其设置为 git。几个月来,事情一直很好,直到上周我开始看到以下错误:
C:\temp\git>git clone https://tfs.mycompany.com/project/team/_git/framework
Cloning into 'framework'...
fatal: Authentication failed for 'https://tfs.mycompany.com/project/team/_git/framework/'
经过近一周的故障排除,我离找出问题的根本原因还差得远。我尝试过的一切都会导致相同的错误。我在网上和 SO 中找到的所有解决方案都不起作用,即删除 git 文件夹、卸载 git、重新安装 git、删除 .cache 文件等等……没有任何区别。
今天我发现我可以针对我们的旧 TFS 2015 实例和 github 使用 git for windows 客户端而不会出现任何错误,因此这似乎是 TFS 2018 唯一的问题。我已经搜索并搜索了任何可能已更改的安全设置,但找不到任何与我可以更改的安全相关的内容,这些设置会影响这个庄园的安全设置。我还检查了服务器证书,它似乎还有一年的有效期,所以我不认为是这样。
我还发现 Visual Studio 2015 可以克隆并与 TFS 2018 服务器同步 - 没有身份验证错误。显然,它有自己的内置 git 客户端,不受任何导致 Windows 的 git 客户端的身份验证问题的影响。Visual Studio 2017 抛出与 git for windows 客户端相同的错误,所以我猜它在后台使用该客户端,与 vs2015 不同。
目前,我正在使用最新的 git for windows 客户端,它是唯一安装的客户端(vs2015 除外) - 删除了所有其他 git 客户端,即 TortoiseGit。另请注意,我已删除 TFS 2018 服务器的所有 Windows 凭据,并且从未像 Microsoft 的文章所建议的那样提示我输入用户名或密码。也没有提示我输入 TFS 2015 服务器的凭据,但凭据管理器具有该服务器的有效凭据。
有没有人知道这里可能出了什么问题?我们的服务器此时完全没用,因为没有人可以同步更改。