在 TFS2013 中使用 Git 进行 Kerberos 身份验证

Posted

技术标签:

【中文标题】在 TFS2013 中使用 Git 进行 Kerberos 身份验证【英文标题】:Kerberos authentication with Git in TFS2013 【发布时间】:2013-12-30 20:36:37 【问题描述】:

以前,使用我的 TFS2012 服务器,使用 git tf,使用 Kerberos 单点登录(凭据显示在 klist)登录的 Linux 用户不必输入他的用户名或密码。

TFS2013 使用 Git 进行源代码控制,任何push/fetch 命令都需要用户名和密码。这可以通过将remote URL 修改为http://user:password@server/... 来缓解,但这是不安全的,并且需要在密码更改时进行更新。有没有办法使用 Kerberos 凭据进行 TFS2013 git HTTP 身份验证?

注意:稍后检查,用户名和密码不是必需的,只是要求。命中普通返回将导致必须回退到 kerberos 身份验证,该身份验证有效。我如何让 git 尝试 kerberosfirst

【问题讨论】:

您可以使用 gpg 加密的.netrc 文件:***.com/a/18362082/6309,而不是将密码以纯文本形式保存在您的 https 网址中。 您的 TFS2013 服务器是否配置为使用 Kerberos?还是处于 NTLM 模式(默认)? 是的,服务器配置为使用kerberos。 我问了一下,这应该是默认的 git 行为。它要求您选择使用不同的凭据。如果您不提供,则使用您的 kerberos 凭据。 TFS 在这里没有做任何特别的事情,是 Git 表现得“奇怪”。 是的,我在问是否有任何方法可以改变 git 中的这种行为。 【参考方案1】:

如果 git 用于 HTTP(S) 的 libcurl 提供了空凭据,它将愉快地进行协商身份验证。当提示输入用户名和密码时,只需按两次 Enter。

保存空凭据,请将您的凭据助手设置为基本存储:

git config --global credential.helper store

然后在您与遥控器的下一次交互(推、拉、克隆等)时,只需按两次 Enter。

这个答案的功劳应该去diegowsthis answer。

【讨论】:

以上是关于在 TFS2013 中使用 Git 进行 Kerberos 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

无法通过git命令对TFS进行身份验证

Git删除TFS git存储库中的远程分支

(翻译) TFS源码控制的未来 (TFSVC vs. Git)

将本地 VS2012.2 项目连接到 tfs-git

Android Studio TFS(团队基础服务器)

代码管理器 TFS2013