我有credential.helper=manager-core
,它是windows凭据管理器的新助手。我不明白如果你能让git用git credential fill
显示你的凭据,它怎么安全。
复制步骤
- 通过执行命令
git config --system --list
来确认凭证助手。如果您正在运行Git for Windows 2.29或更高版本,那么您应该能够在列表中看到credential.helper=manager-core
。对于早期版本,credential.helper
设置为manager
而不是manager-core
。我正在运行最新的Git For Windows 2.29.2,所以对我来说,它返回manager-core
- 接下来,如果您的凭据已经由助手存储,那么下面的命令应该在stdout上返回凭据:
git credential fill
protocol=https
host=github.com`
<HIT ENTER KEY TWICE, as A blank line signals input completion>
- 凭据现在应该显示在控制台上。它能够根据您最初配置的git显示密码/令牌。在我的情况下,我使用GitHub个人访问令牌进行了身份验证,它显示了该pat
您注意到,如果您以与Git相同的方式调用git credential fill
,那么它将输出Git用于对您进行身份验证的凭据。这很有用,因为Git需要某种方式来将它们取出,如果需要,您也可以通过这种方式提取令牌来进行API调用。
这是安全的原因,因为如果你正确配置了适当的凭据管理器,数据将以加密格式存储,并且只有当你登录或以其他方式解锁时才会解锁。在Windows上如何工作取决于你如何配置Git凭据管理器核心,但是我在Linux上使用的libsecret
助手将加密的数据存储在我的系统密钥链中,当我登录时,该密钥链是解锁的,当我没有登录时,它不可用。
请注意,在许多情况下,您可以使用凭证存储使用的其他API(如(在Linux上(secret-tool
等(提取类似的数据,因此您可以使用git credential fill
将其打印到终端,这与您使用任何其他API将其打印至终端或使用系统上使用的典型查看器查看数据的能力没有什么不同。