Git身份验证仅在TFS 2018上失败

时间:2018-10-09 18:46:29

标签: git tfs2018 git-for-windows

我最近构建了一个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服务器的凭据,但是凭据管理器具有该服务器的有效凭据。

有人知道这里可能出什么问题吗?我们的服务器目前完全没有用,因为没有人可以同步更改。

2 个答案:

答案 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