以开源方式管理密码

还没有读者喜欢这篇文章。
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 署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.