【发布时间】:2013-01-29 08:09:36
【问题描述】:
我的问题正是标题。
每次我在命令提示符下运行命令git-tf checkin 时,当它连接到 TFS 时,它都会询问我的用户名和密码。我怎样才能避免这种情况?
要么让它以当前用户身份登录,要么将凭据存储在配置文件中的某处。
【问题讨论】:
我的问题正是标题。
每次我在命令提示符下运行命令git-tf checkin 时,当它连接到 TFS 时,它都会询问我的用户名和密码。我怎样才能避免这种情况?
要么让它以当前用户身份登录,要么将凭据存储在配置文件中的某处。
【问题讨论】:
您可以使用 --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),但至少不会保存在项目中的文件中。
【讨论】:
[git-tf "server"] 部分下,添加username 和password 键。
到目前为止,最安全的方法是不存储密码,而是通过 Kerberos 或 NTLM 使用单点登录:
如果您在 Windows 上并登录到与您的 TFS 服务器具有信任关系的域,那么您不需要指定用户名和密码。
如果您使用的是 Windows 并设置了“影子帐户”,则无需指定用户名和密码。当您与 TFS 服务器没有域信任关系时会发生这种情况但您使用与 TFS 服务器上的帐户相同的用户名和密码登录到本地计算机。
如果您使用的是 Unix 平台,则可以使用 Kerberos 进行单点登录。当您从 Active Directory 服务器本身获得票证时,这很可能是这种情况,例如 kinit activedirectory.domain.name。
类似地,如果您在 Unix 上并且有一个到与 TFS 服务器(几乎可以肯定是 Active Directory 服务器本身)有信任关系的 KDC 的 Kerberos 票证,那么您不需要指定用户名和密码。 git-tf 将使用您的登录凭据进行身份验证。
如果这些都不适用,那么您可以将用户名和密码存储在存储库的 git 配置中:
git config git-tf.server.username your-username
git config git-tf.server.password your-password
请注意,您的密码将以纯文本形式存储在 git 配置文件中。请务必根据需要设置 ACL 或文件权限,以阻止人们从配置文件中读取您的密码。或者您可以只存储用户名,每次只需要输入您的密码。
【讨论】:
.git/config 文件可能会稍微好一些。感谢您提供有关 Kerberos 的这些提示 :)