0

当我使用 Git 连接到 TFS 服务器时,Windows 的 Git 凭据管理器会弹出一个 Microsoft 登录框。但是,当我连接到 GitHub 服务器时,它会为 GitHub 引发不同的登录对话框。我想知道 Git Credential Manager 使用什么条件来控制其弹出框。它是服务器。服务器返回值?主机名?

4

1 回答 1

1

它基于 URL。打开凭据管理器,您将看到如下内容:

在此处输入图像描述

有关确切工作流程的更多详细信息来自此处

管理流程:
git-credential 找到 credential.helper=manager 并使用“get”选项调用 git-credential-manager。
git-credential-manager 缺少 + 的凭据。git-credential-manager 查看配置 + 以确定这些是基本凭据、VSO m-factor 还是 GitHub 2-factor authentication。
在基本凭证的情况下, git-credential-manager 告诉 git-credential 它没有任何凭证的事实。
git-credential 然后在命令行提示用户输入凭据。
用户输入凭据。
git-credential 使用 store 选项调用 git-credential-manager 并提供用于存储的凭据。

进一步的配置可以帮助您设置特定的授权方法,如果我想使用 NTLM 授权与 TFS 托管的 git repo 通信,我会输入

git config --system credential.myserver.com.authority Integrated 

这将明确告诉所有 repos 使用 Integrated/NTLM 而不是让用户输入他们的用户名/密码(甚至一次)。显然,将 myserver.com 更改为您自己的域。这还有一个额外的优势,即当用户必须更新密码时不会中断。否则,他们必须从凭据管理器中手动删除/修改凭据。

于 2018-08-01T08:23:11.197 回答