git-tf如何避免每次checkin时都要指定我的凭据

13
我的问题就是标题所述。
每次在命令提示符中运行git-tf checkin命令时,当其连接到TFS时都会要求我输入用户名和密码。我该如何避免这种情况呢?可以让它使用当前用户登录或将凭据存储在配置文件中。
2个回答

21
迄今为止,最安全的方法是不存储密码,而是使用Kerberos或NTLM的单点登录:
如果您在Windows上并已登录到与TFS服务器建立信任关系的域中,则不需要指定用户名和密码。
如果您在Windows上设置了“阴影帐户”,则无需指定用户名和密码。这种情况发生在您没有域信任关系但您在本地计算机上使用与TFS服务器上的帐户相同的用户名和密码进行登录时。
如果您在Unix平台上,可以使用Kerberos进行单点登录。当您从Active Directory服务器本身获得票证时,这很可能是发生的情况,例如kinit activedirectory.domain.name
同样地,如果您在Unix上并且有一个向KDC授权关系的Kerberos票证(几乎肯定是Active Directory服务器本身),那么您不需要指定用户名和密码。git-tf将使用您登录的凭据进行身份验证。
如果以上都不适用,则可以将用户名和密码存储在git配置中以供您的存储库使用。
git config git-tf.server.username your-username
git config git-tf.server.password your-password

请注意,您的密码将以明文形式存储在git配置文件中。请确保根据需要设置ACL或文件权限,以防止他人从您的配置文件中读取密码。或者您可以只存储用户名,每次访问时需要输入密码。


好的。Git配置似乎可以工作。但我会选择您的其他解决方案,但无法使其工作。 我正在Windows 8计算机上开发,我们的团队基础架构服务器是Windows Server 2008 R2。我坐在与团队基础架构服务器相同的本地网络中。我登录到个人开发计算机上的用户也已添加到团队基础架构服务器中。这是我在tfs提示我填写用户名和密码时填写的用户。 我还在我的开发计算机上的凭据管理器中添加了一行。 我是否遗漏了什么明显的东西? - John
在 http://gittf.codeplex.com 上给我们留言,我们会获取您的日志副本并查看是否有任何阐明的内容。 - Edward Thomson
1
我想补充一点,如果你使用git config命令添加密码,你的密码也会被存储在bash历史记录中。手动编辑.git/config文件可能会稍微好一些。不过还是谢谢你提供有关Kerberos的这些技巧 :) - Uflex
@EdwardThomson,有没有办法让Linux客户端连接到Visual Studio Online并实现单点登录?如果可以的话,我在VSO中设置了备用凭据。 - Andy Gaskell

1
你可以使用 --global 选项来防止 git 将此保存到项目的 .gitconfig 文件中:
git config --global git-tf.server.username your-username  
git config --global git-tf.server.password your-password 

它仍将以纯文本形式保存在您的系统上(C:/Users/your-login/.gitconfig),但至少不会保存在项目所在的文件中。

1
将它保存在全局配置中为什么是一件好事?如果我有多个 TFS 服务器怎么办? - Edward Thomson
1
@EdwardThomson请将凭据添加到您的.git/config文件中。在“[git-tf“server”]”部分下,添加“username”和“password”键。 - Daniel Bang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接