在 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 身份验证的主要内容,如果未能解决你的问题,请参考以下文章