以开源方式管理密码

尚无读者喜欢这篇文章。
code editors

Opensource.com

目前,我需要管理的用户名和密码比任何人都应该处理的要多得多。我知道我不是唯一一个。我们有大量的密码需要管理,我们需要一个好的方法来管理它们,以便我们可以轻松访问,而不会做出像把它们写下来放在别人可能找到的地方这样的傻事。作为简单应用程序的爱好者,我更喜欢使用命令行密码管理器 pass

在多个服务中使用相同的用户名和密码从来都不是一个好主意。但在今天的世界里?这可能是灾难性的。所以我不会这样做。目前,我正在为我使用的所有服务管理大约 90 到 100 个密码。多个 Twitter 帐户、我的服务器凭据、OpenShift 应用程序、我的 FAS 凭据、Rdio 的登录名等等。

您可以想象,试图记住所有这些密码是一种徒劳的尝试。我记得我的系统密码和少数其他密码。除此之外?我宁愿把大脑有限的存储空间留给更重要的事情。

什么是 pass,它需要什么?

那么 pass 是什么呢?它基本上是一个简单的命令行实用程序,可以帮助您管理密码。它使用 GnuPG 加密文件来保存和管理用户密码。如果您选择这样设置,它甚至可以将它们保存在 git 存储库中。这意味着您需要安装 pass 软件包,以及它的依赖项,如 gitgnupg2pwgen一个用于生成密码的实用程序)。

是的,还有其他选择,但我很久以前就选择了 pass,认为它最适合我的需求。以下是如何尝试一下,看看它是否适合您!

安装和设置

安装 pass 很简单。它为 Fedora 提供了方便的软件包。只需打开终端并运行

yum install -y pass

它应该会获取您需要的所有依赖项。

您需要做的第一件事是创建 GPG 密钥。有关详细说明,请参阅 Fedora wiki,或者直接使用

gpg --gen-key

并完成一系列提示。如有疑问,请接受默认值。现在,您只需要使用以下命令初始化您的密码存储:

pass init GPG-ID

将 “GPG-ID” 替换为您用于 GPG 密钥的电子邮件地址。

添加和创建密码

现在您已经设置了密码存储,是时候开始创建或插入密码了。如果您已经有要存储的密码,请使用

pass edit passwordname

例如,如果您要存储您的 Fedora 帐户系统 (FAS) 密码,您可以使用

pass edit FAS/user

其中 “user” 是您在 FAS 中的用户名。

这将在 Git 中创建一个目录 (FAS) 和文件 (user),并加密该文件,以便任何人在没有您的 GPG 密码的情况下都无法读取它。如果您查看 ~/.password-store/FAS/,您会看到一个类似 user.gpg 的文件。目录部分是可选的,但我发现它有助于跟踪密码。

如果您想创建一个新密码,只需使用

pass generate FAS/user 12

其中 “FAS/user” 将是用户名,密码长度(由 pwgen 生成)将为 12 个字符。自动生成的密码将包括大写和小写字母、数字和特殊字符。

创建 git 存储库

对我来说,pass 最大的卖点之一是它与 git 的集成。但这不是自动的;您确实需要告诉它初始化 git 仓库并使用它。首先,请确保您已设置 git 全局变量


git config --global user.email "your@email.com" 
git config --global user.name "Awesome User"

然后运行

pass git init

它将在您的密码存储中初始化一个 git 存储库。从那时起,它将自动将新密码等添加到 git 仓库。如果您想在多台机器上管理密码,这非常容易:只需在其他地方克隆存储库,并像管理普通 git 仓库一样保持同步。

读取密码

要回忆密码,您只需运行 pass user,因此 pass FAS/user 会将密码打印到终端。但是,如果您不希望密码被偷看您肩膀的人看到怎么办?

这是一个巧妙的解决方法。只需使用

pass -c FAS/user

它会将您的密码复制到剪贴板 45 秒。您所要做的就是运行命令,移动到您要输入密码的应用程序,然后按 Enter 键。

如果您忘记了您使用 pass 存储了哪些密码,只需使用 pass ls,您将获得完整列表。

删除密码

有时您需要删除密码。只需使用

pass rm user

pass 会询问您是否确定,然后删除密码文件。

如果您不小心删除了某些内容,您可以简单地返回并恢复提交!

保持安全

这就是使用 pass 的基本知识。您可以通过运行以下命令获得更多示例

man pass

我强烈建议至少浏览一遍手册页。

我已经使用 pass 一段时间了,它一直是我的救星。我希望它也能像帮助我一样帮助您!

最初发表于 Fedora Magazine。在此根据 Creative Commons 重新发布。

User profile image.
Fedora Magazine 是 Fedora 社区的在线出版物。

7 条评论

如果有人访问了您的机器,他们可以运行 pass 程序或系统上安装的任何其他密码管理器,并窃取您的所有用户名和密码;即使它们被加密了也没关系。就操作系统而言,以您的身份运行的程序就是您,并且使用也位于您的用户帐户中的方便密钥,它会兴高采烈地解锁并将您的密码显示给使用您帐户的任何冒名顶替者。以这种方式使用的加密会给人一种虚假的安全感。如果他们可以访问您的加密密码文件,他们也可以访问您的加密密钥文件。当解锁它的密钥与锁放在一起时,试图混淆信息有什么意义呢?

作者没有提及解锁 pass 的密码列表是否需要密码短语。如果是这种情况,攻击者是否需要密码短语才能执行您建议的操作?您应该尝试一下并告诉我们!

回复 ,作者: sbicknel (未验证)

这就是密码短语的用途。与 ssh-key 一样,gpg 需要您实际输入的密码短语才能安全。如果您使用代理来将会话中的密码短语存储起来,那么某人将不得不闯入您的会话,而不仅仅是您的帐户,才能获得不受限制的访问权限。即使使用 TFA 和物理密钥(例如 CAC),如果有人获得了所有密钥和密码短语......好吧,您就被攻击了。在我看来,这比 'vi -x passwords',或者更糟的是 'vi passwords' 要好得多。您有更好的主意吗?

回复 ,作者: sbicknel (未验证)

是否有 Android 或 iOS 应用程序来访问 pass 存储的密码?是否与其他计算机或移动设备同步?我需要在工作场所的 Linux PC、家里的 Linux 笔记本电脑、Android 智能手机、平板电脑上使用我的密码......恕我直言,如今本地密码存储是完全没有意义的。

这里有一篇更好的文章,介绍 pass 的工作原理以及如何使用它:

liquidat.wordpress.com/2013/03/27/pass-a-perfect-shell-based-password-manager/

就我个人而言,我推荐 Figaro's Password Manager,它带有 GUI,并且可以使用密码短语和密钥文件进行保护,这两者是相互独立的。显然,密钥文件可以驻留在外部介质(CD、USB 密钥等,可以使用加密文件系统)上,而不是内部硬盘上,以获得更高的安全性。

如果您将此与 Gnome3 一起使用,您可能需要执行

gsettings set org.gnome.crypto.cache gpg-cache-method 'timeout'
gsettings set org.gnome.crypto.cache gpg-cache-ttl 60

以便每次调用 pass 时都会询问 GPG 密码(实际上,它将使用上述命令存储 60 秒,这在某些情况下可能是实用的,但您可以将延迟设置为 0)。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.