我已在构建计算机上安装了 TFS Express 2013。我可以使用我的域凭据 (NTLM) 通过 Web 和 Visual Studio 2013 进行连接,但是没有任何 3rd 方工具或命令行工具可以进行身份验证。在命令行上输入我的凭据时,我得到的只是fatal: Authentication failed
服务器使用自签名证书强制使用 https,我使用我的域凭据进行访问。我已将证书添加到我的开发计算机的根 CA 中,并在我的 gitconfig 中使用 sslVerify=false - 正常的 SSL 问题已得到解决(但可能有相关问题)。
到目前为止,我已经尝试了在中找到的几个选项这个问题 https://stackoverflow.com/questions/17074941/git-failed-to-erase-credential-element-not-found,但没有运气。
- 从密码中删除了特殊字符
- 下降到 msysgit 1.8.1
- 使用/重新安装 gitcredentialstore,没有运气。在那里手动设置凭据也不起作用。
- 在构建机器上创建了本地用户,添加到TFS项目中,仍然无法连接。
- 在 IIS 中启用基本身份验证,什么也没有,所以将其关闭,只留下 Windows 身份验证。
允许 http 工作正常,但不愿意让它成为生产环境。
我可以在命令行上很好地连接到 github,但不能连接到 TFS。
任何额外的见解将不胜感激。
Edward 的评论很有帮助,能够排除 msysgit - 不知道它支持 NTLM(已经在其他地方阅读过有关 CURL 的混合内容)。
我用 Wireshark(非常复杂,信息超载)和 Fiddler(更容易使用)进行了探索,但没有真正跳出来。
所以,事实证明这完全是 IIS 中的管理员错误(我)。
默认情况下,TFS Express 将自身安装到端口 8080 上的自己的站点中(或者至少对我来说是这样,因为我有一个现有站点)。我希望它位于主站点下,所以只需将其关闭并在我的主站点中添加一个新的虚拟目录。对 SSL 进行了一些配置,但忘记了一些内容 - 完全匹配 IIS 中的身份验证设置。它足以允许 Web 和 VS 访问,但 msysgit 有问题。
TFS 默认安装仅允许 Windows 身份验证(具有该身份验证)并且仅允许 NTLM 作为提供程序(仍然具有 Negotiate)。其次是 Windows Auth 的高级属性 - 将扩展保护设置为“接受”。 TFS 默认将其设置为“关闭”。
- 删除除 NTLM 之外的所有提供程序。
- 关闭扩展保护。
现在可以工作了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)