13

我的问题正是标题。

每次我git-tf checkin在连接到 TFS 时在命令提示符中运行该命令时,它都会询问我的用户名和密码。我怎样才能避免这种情况?要么让它以当前用户身份登录,要么将凭据存储在配置文件中的某处。

4

2 回答 2

21

到目前为止,最安全的方法是不存储密码,而是通过 Kerberos 或 NTLM 使用单点登录:

如果您在 Windows 上并登录到与您的 TFS 服务器具有信任关系的域,那么您不需要指定用户名和密码。

如果您在 Windows 上并设置了“影子帐户”,则无需指定用户名和密码。当您与 TFS 服务器没有域信任关系您使用与 TFS 服务器上的帐户相同的用户名和密码登录到本地计算机时,会发生这种情况。

如果您使用的是 Unix 平台,则可以使用 Kerberos 进行单点登录。当您从 Active Directory 服务器本身获得票证时,这很可能是这种情况,例如kinit activedirectory.domain.name.

类似地,如果您在 Unix 上并且有一个 Kerberos 票证到与 TFS 服务器(几乎可以肯定是 Active Directory 服务器本身)有信任关系的 KDC,那么您不需要指定用户名和密码。 git-tf将使用您的登录凭据进行身份验证。

如果这些都不适用,那么您可以将用户名和密码存储在存储库的 git 配置中:

git config git-tf.server.username your-username
git config git-tf.server.password your-password

请注意,您的密码将以纯文本形式存储在 git 配置文件中。请务必根据需要设置 ACL 或文件权限,以阻止人们从配置文件中读取您的密码。或者您可以只存储用户名,并且每次只需要输入您的密码。

于 2013-02-14T17:40:36.637 回答
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),但至少不会保存在项目中的文件中。

于 2014-07-19T08:22:21.590 回答