我最近构建了一个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对于Windows客户端会抛出与git相同的错误,因此我猜想它会在后台使用该客户端,而不是vs2015。
目前,我正在为Windows客户端使用最新的git,这是唯一安装的客户端(vs2015除外)-删除了所有其他git客户端,即TortoiseGit。还要注意,我已经删除了TFS 2018服务器的所有Windows凭据,并且从未像Microsoft的文章所提示的那样提示我输入用户名或密码。我也没有提示输入TFS 2015服务器的凭据,但是凭据管理器具有该服务器的有效凭据。
有人知道这里可能出什么问题吗?我们的服务器目前完全没有用,因为没有人可以同步更改。
答案 0 :(得分:1)
首先,检查您的credential helper:它可能已缓存了错误的凭据:
git config credential.helper
第二,检查所有配置:
git config -l --show-origin
查找任何代替Of指令,该指令可以将https URL更改为SSH URL。
答案 1 :(得分:1)
将TFS服务器身份验证更改为NTLM,并且GIT克隆按预期工作。我相信更新3无需询问即可将其更改为kerberos身份验证,或者我可以掩盖它。下面是将其改回的命令。
C:\Program Files\Microsoft Team Foundation Server 2018\Tools>TFSConfig Authentication /provider:NTLM /siteType:ApplicationTier