我一直在为Linux寻找一个好的加密git凭证助手(可以以加密的方式存储密码,并在以后检索它们,符合git-credential协议),我真的很惊讶,似乎没有太多的东西出现。
在我见过的所有git文档和相关的git-credential文档中,他们甚至没有提到这样一个东西的存在。它总是提到Mac的osxkeychain,但是如果你运行的是Linux,它只是将你重定向到解释如何使用“缓存”作为帮助器的文档。一些参考文献提到了微软用于Windows的git凭据管理器。没有什么是Linux的。
如果您使用实际的密码,使用缓存似乎是一个半好的解决方案。不可怕,但离理想还很远。但是,如果您使用的是个人访问令牌(如果您想在存储库的帐户上维护2 Factor安全性,则必须使用该令牌),那么这是不可行的。必须偶尔输入一个随机生成的PAT,无论多么罕见,都是一个非常糟糕的主意。您实际上无法记住它们,并且以纯文本的形式将它们存储在某个地方是一种安全隐患。(另外,如果你想自动化一些git操作怎么办?不上班)。
那么,解决方案是什么呢?如果Windows和Mac都有,我敢肯定Linux至少有一个好的选择,可能有很多。例如,我听说你可以用Gnome来做。但是如果你没有Gnome,你该怎么办?我听说微软的Windows管理器可以在Linux下运行,但还没有尝试过。这是唯一的选择吗是否有开源选项?
2条答案
按热度按时间s3fp2yjn1#
这是我们在git源代码中的内容:https://github.com/git/git/tree/master/contrib/credential
因此,您可以使用
gnome-keyring
(已弃用),libsecret
或gpg加密的.netrc
。我相信
libsecret
可以在没有GNOME的任何Linux发行版上使用。参见https://stackoverflow.com/a/40312117/7976758。
下面是如何使用gpg加密的
.netrc
:https://stackoverflow.com/a/18362082/7976758。提醒:
libgnome-keyring
是特定于GNOME的,并且是:gt0wga4j2#
如果你已经使用了1Password或Lastpass或pass或gopass这样的密码管理器,你可以使用它来管理你的git凭证,只要你只在本地系统或你信任的系统上使用它。
我做了一个快速的搜索,找到了几个
git-credential-APPNAME
帮助器,用于上面的每一个(gopass应该与pass实现兼容)。