如何使用密码管理器为git push/pull提供个人访问令牌

5

背景

假设:

  • 我在 GitLab 上有一个代码库,并已将其克隆到我的机器上。
  • 我有一个 GitLab 令牌,可以让我推送和拉取该代码库。
  • 这个令牌已经保存在我的 Bitwarden 密码库中。
  • 借助 Bitwarden CLI 工具,我可以通过编程方式进行身份验证、锁定/解锁我的密码库。

问题

是否有方法能够通过编程方式将 Bitwarden 动态获取的 GitLab 令牌链接/管道连接到 git push 和 pull 命令中,以便对这些操作进行身份验证/授权?

调查

我听说过以下几种解决方案来解决此问题,但它们不符合我需要面对的安全规则:我不能以明文形式存储任何机密信息。

  • GitLab 令牌可以放在 git 凭据 helper.store 文件中。这里 GitLab 令牌需要以明文形式存储在 store 文件中。
  • git 远程 URL 可以修改以包含凭据。这里 GitLab 令牌需要以明文形式存储在 git 远程 URL 中。

注意事项

  • 我不能使用 SSH 密钥,必须使用 HTTPS 协议。
  • 我所针对的 git 版本是来自官方 Ubuntu 软件包(2.17.1,截止到撰写本文时)。

1
你看过gitcredentials文档中的自定义助手部分吗?那里似乎有你需要的一切。 - larsks
嘿 @larsks,不好意思,我之前没有看过,但现在我已经读了它(还有@VonC建议的AZMCode/git-credential-bw中的代码),这似乎完美适用于我的使用情况。现在我需要解决实现细节问题,我会回来给一个反馈。 - Hadrien TOMA
@larsks 我使用的git版本是2.17.1,文档中没有CUSTOM HELPERS部分与相同内容(对于2.13.7几乎为空)。您知道这是新引入的功能还是只是最近更新了文档? - Hadrien TOMA
我不确定文档是何时更改的。您可能需要升级您的Git;当前版本为2.29.2。 - larsks
1
@HadrienTOMA 我认为你不需要升级:任何 git-credential-xxx 可执行文件仍然被视为自定义助手,即使在2.17版本中也是如此。 - VonC
1个回答

2
你可以检查自定义Git凭证助手AZMCode/git-credential-bw是否符合你的需求。

这是一个将Bitwarden CLI与Git集成的项目,以避免多次重新输入密码或为不同站点管理多个Bitwarden凭证而产生的不便。

git config credential.helper bw

这看起来很有趣,我需要更简单的东西,但我认为我能够提取我想要的部分。非常感谢,我会在这里回来报告我的进展。 - Hadrien TOMA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接