21

我一直在为 Linux 寻找一个好的加密 git 凭证助手(可以以加密方式存储密码,并在以后检索它们,符合 git-credential 协议),我真的很惊讶似乎没有多少会出现。

在我见过的所有 git 文档和相关的 git-credential 文档中,他们甚至都没有提到这种东西的存在。它总是提到 Mac 的 osxkeychain,但如果你运行的是 Linux,它只会将你重定向到解释如何使用“缓存”作为助手的文档。一些参考文献提到了微软用于 Windows 的 git 凭证管理器。但对于 Linux 来说没有。

如果您使用实际密码,使用缓存似乎是一个半好的解决方案。不可怕,但远非理想。但是,如果您使用的是个人访问令牌(如果您想为您的回购维护帐户的 2 因素安全性,则必须使用它),那么这是不行的。不得不偶尔输入其中一个随机生成的 PAT,无论多么罕见,都是一个非常糟糕的主意。您实际上无法记住它们,并且将它们以纯文本形式存储在某处是一种安全妥协。(另外,如果你想自动化一些 git 操作怎么办?行不通。)

那么——这里的解决方案是什么?如果它同时适用于 Windows 和 Mac,我敢肯定 Linux 至少有一个不错的选择,可能很多。例如,我听说你可以用 Gnome 做到这一点。但是如果你没有 Gnome,你应该怎么做?听说微软的windows管理器可以在Linux下运行,但还没试过。那是唯一的选择吗?有开源选项吗?

4

2 回答 2

20

这就是我们在 git 源中所拥有的:https ://github.com/git/git/tree/master/contrib/credential

因此,您可以使用gnome-keyring(不推荐使用)libsecret或 gpg-encrypted .netrc

libsecret我相信,可以与任何没有 GNOME 的 Linux 发行版一起使用。

git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

请参阅https://stackoverflow.com/a/40312117/7976758

这是使用 gpg-encrypted 的方法.netrchttps ://stackoverflow.com/a/18362082/7976758 。

于 2018-11-14T19:12:20.157 回答
0

如果您已经使用了 1Password 或 Lastpass 或 pass 或 gopass 之类的密码管理器,只要您仅在本地系统或您信任的系统上使用它,您就可以使用它来管理您的 git 凭据。

我进行了快速搜索,并git-credential-APPNAME为上述每个找到了一些帮助程序(gopass 应该与 pass 实现兼容)。

于 2020-11-02T03:40:48.460 回答