我一直在寻找适用于Linux的好的加密git凭证帮助程序(可以以加密方式存储密码,并在以后检索它们,符合git-credential协议的东西),我真的很惊讶没有似乎很多。
在我所见过的所有git文档和相关的git-credential文档中,他们甚至没有提到这种事情的存在。它总是提到Mac的osxkeychain,但是,如果您运行的是Linux,它只会将您重定向到说明如何使用“缓存”作为帮助程序的文档。一些参考文献提到了Microsoft用于Windows的git凭据管理器。但是对于Linux没有任何帮助。
如果您使用实际密码,则使用缓存似乎是一个半好的解决方案。 并不可怕,但远非理想。但是,如果您使用的是个人访问令牌(如果要在您的回购帐户上维护2因子安全性,则必须使用该令牌),那么那就不行了。无论多么频繁,不得不偶尔输入一次随机生成的PAT都是一个坏主意。您不能现实地记住它们,将它们以纯文本格式存储在某个地方会危害安全性。 (此外,如果您想自动化一些git操作怎么办?不起作用。)
那么-这里的解决方案是什么?如果Windows和Mac都存在,那么我敢肯定Linux至少有一个不错的选择,也许很多。例如,我听说您可以使用Gnome做到这一点。但是,如果您没有Gnome,该怎么办?我听说Microsoft的Windows管理器可能在Linux下运行,但尚未尝试过。那是唯一的选择吗?有开源选项吗?
答案 0 :(得分:3)
这是我们在git来源中拥有的:https://github.com/git/git/tree/master/contrib/credential
因此,您可以使用gnome-keyring
(不推荐使用),libsecret
或经过gpg加密的.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加密的.netrc
:https://stackoverflow.com/a/18362082/7976758的方法。
答案 1 :(得分:0)
如果您已经使用了1Password或Lastpass或pass或gopass这样的密码管理器,则只要您仅在本地系统或信任的系统上使用它,就可以使用它来管理git凭据。
我进行了快速搜索,并为上述每一个找到了几个git-credential-APPNAME
助手(gopass应该与pass的实现兼容)。