2

我有credential.helper=manager-core,这是windows凭证管理器的新帮手。我不明白如果您可以让 git 使用git credential fill.

重现步骤

  1. 通过执行命令确认凭证助手git config --system --list。如果您正在运行Git for Windows 2.29或更高版本,那么您应该能够credential.helper=manager-core在列表中看到。对于早期版本,credential.helper设置为manager而不是manager-core。我正在运行最新的Git For Windows 2.29.2,所以对我来说它 return manager-core
  2. 接下来,如果您的凭据已由助手存储,则以下命令应在 stdout 上返回凭据:
git credential fill
protocol=https
host=github.com`
<HIT ENTER KEY TWICE, as A blank line signals input completion>
  1. 凭据现在应该显示在您的控制台上。它能够根据您最初配置 git 的任何内容显示密码/令牌。就我而言,我已经使用 GitHub 个人访问令牌进行了身份验证,并且它显示了该 pat。
4

1 回答 1

5

您注意到的是,如果您git credential fill以与 Git 相同的方式调用,那么它将输出 Git 用于对您进行身份验证的凭据。这很有用,因为 Git 需要一些方法来将它们取出,并且如果需要,您也可以通过以这种方式提取令牌来使用令牌来进行 API 调用。

这是安全的原因是因为如果您正确配置了适当的凭据管理器,则数据将以加密格式存储,并且仅在您登录或以其他方式解锁时才会解锁。它在 Windows 上的工作方式取决于您如何配置 Git Credential Manager Core,但libsecret我在 Linux 上使用的助手将加密的数据存储在我的系统钥匙串中,当我登录时解锁,当我没有登录时不可用在。

请注意,在许多情况下,您可以使用凭证存储使用的其他 API(例如(在 Linux 上)等)提取类似的数据secret-tool,因此您可以使用将其打印到终端的事实与您使用git credential fill的能力没有什么不同任何其他 API 将其打印到终端或使用您在系统上使用的典型查看器查看它。

于 2021-03-24T22:58:33.157 回答