【问题标题】:Team Foundation Server 2013 Express - Can't connect to git repo via command lineTeam Foundation Server 2013 Express - 无法通过命令行连接到 git repo
【发布时间】:2013-11-25 04:07:36
【问题描述】:

我已经在我的构建机器上安装了 TFS Express 2013。我可以使用我的域凭据 (NTLM) 通过 Web 和 Visual Studio 2013 进行连接,但是没有第 3 方工具或命令行工具可以进行身份​​验证。在命令行上输入我的凭据时,我得到的只是fatal: Authentication failed

服务器使用自签名证书强制使用 https,我使用我的域凭据进行访问。我已将证书添加到我的开发机器的根 CA 并在我的 gitconfig 中使用 sslVerify=false - 正常的 SSL 问题已得到解决(但可能是相关的)。

到目前为止,我已经尝试了几个在 this question 中找到的选项,但都没有成功。

  • 从密码中删除了特殊字符
  • 删除到 msysgit 1.8.1
  • 使用/重新安装 gitcredentialstore,没有运气。在那里手动设置凭据也不起作用。
  • 在构建机器上创建本地用户,添加到 TFS 项目中,仍然无法连接。
  • 在 IIS 中启用基本身份验证,没有,所以将其关闭,只保留 Windows 身份验证。

允许 http 工作正常,但不愿意让它成为生产。

我可以在命令行上很好地连接到 github,但不能连接到 TFS。

任何额外的见解将不胜感激。

【问题讨论】:

  • msysgit 非常聪明,可以说 NTLM/SPNEGO,但前提是您在提示时不输入用户名和密码(按回车键)。这对你有用吗?你能得到 fiddler 或 wireshark 来指示正在发送的内容吗?
  • 谢谢 - 帮我排除了一些问题。原来是不同的东西 - 主要是管理员(我)配置错误。
  • 很好,很高兴它对你有用。

标签: git tfs


【解决方案1】:

Edward 的评论有帮助,能够排除 msysgit - 不知道它支持 NTLM(在其他地方读过关于 CURL 的混合内容)。

用 Wireshark(非常复杂,信息过载)和 Fiddler(更容易使用)四处寻找,但没有真正跳出来。

所以,事实证明这是 IIS 中的总管理员错误(我)。

默认情况下,TFS Express 会在端口 8080 上将自己安装到自己的站点中(或者至少它对我来说是这样,因为我有一个现有的站点)。我希望它位于主站点下,因此将其关闭并在我的主站点中添加了一个新的虚拟目录。为 SSL 做了一些配置,但忘记了一些东西 - 完全匹配 IIS 中的身份验证设置。它足以允许 web 和 VS 访问,但 msysgit 有问题。

TFS 默认安装只允许 Windows 身份验证(有那个)并且只允许 NTLM 作为提供者(那里仍然有协商)。其次是 Windows Auth 上的高级属性 - 将扩展保护作为接受。 TFS 默认为关闭。

  • 删除除 NTLM 之外的所有提供程序。
  • 关闭扩展保护。

现在工作。

【讨论】:

  • 谢谢,我设置了 Kerberos 而不是 NTLM,并在 git 基本身份验证时抛出错误“fatal: Authentication failed for''”。
猜你喜欢
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 2015-05-01
  • 2016-06-26
  • 1970-01-01
  • 2010-10-02
  • 2013-05-16
  • 1970-01-01
相关资源
最近更新 更多