如何使用 Pass,Linux 系统的命令行密码管理器

Pass 是一个基于 Unix 理念构建的命令行密码管理器。它使您能够使用常规 Unix 命令与您的密码进行交互。凭据存储在 GPG 加密文件中。
开始设置
pass
在最流行的 Linux 发行版的包管理器中可用。尝试使用与您相关的包管理器将其安装为 pass
,例如用于 Ubuntu/Debian 的 apt
或用于 Fedora/RHEL 的 yum
。 Pass 网站上提供了每个受支持发行版的具体指南。
在继续之前,您需要一个可用的 GPG 密钥。该密钥将用于加密您的密码存储的内容。您可以使用以下终端命令创建一个新的:
gpg --full-generate-key
按照提示创建密钥,注意记下其 ID。您应该使用默认密钥类型(RSA 和 RSA),但将密钥大小更改为 4,096 位以获得最大安全性。
使用可用的 GPG 密钥,您现在可以初始化 pass
。运行以下命令,将 placeholder-gpg-id
替换为您自己的 GPG ID。
pass init placeholder-gpg-key
将在您的主文件夹中创建一个新目录 .password-store
。 Pass 将在此处存储您的密码。每个密码都有自己的文件,这使得单独或集体备份凭据变得简单。

您可以通过在 shell 中设置 PASSWORD_STORE_DIR
环境变量来选择使用多个密码存储。这使您能够覆盖存储在任意位置的默认存储目录和访问密码。
将密码添加到商店
使用 pass insert
命令将密码添加到存储中。这接受服务名称作为参数,并以交互方式提示您输入密码。

密码将保存到您商店内的新加密文件中。您可以通过在服务名称中使用正斜杠来创建凭证层次结构。这将在密码存储的根目录中生成一个子目录树。

Pass 可以为您生成新密码。使用 pass generate
,后跟服务名称,然后是要生成的字符长度。默认情况下,将创建一个由字母数字和特殊字符组成的强密码。您可以使用 --no-symbols
(-n
) 标志来防止出现特殊字符。
pass generate cloudsavvy/example-generated 32 --no-symbols
上面显示的命令将生成一个新的 32 个字符的密码,将其存储为 cloudsavvy/example-generated
,并将其发送到终端。您可以通过传递 --clip
(-c
) 标志将其复制到剪贴板。
找回密码
要列出所有密码的名称,请运行不带任何参数的 pass
命令。

要检索密码的值,请将其名称作为该命令的唯一参数。

默认情况下,密码将发送到终端。您可以通过传递 --clip
(-c
) 标志将其复制到剪贴板。剪贴板数据会在 45 秒后自动清除以确保安全。
通过将凭据的名称传递给 pass rm
(例如 pass rm cloudsavvy/example
)来删除密码。同样,您可以使用 pass edit
编辑密码。密码文件将在您的默认文本编辑器中打开。
与密码的任何交互都会显示系统提示以解锁您的 GPG 密钥。如果密钥受保护,则需要输入密钥的密码。这充当保护整个密码存储的主密钥。
多行密码
因为密码只是纯文本文件,所以可以添加多行数据。当您需要存储额外的安全详细信息(例如双因素身份验证恢复代码)时,这是理想的选择。
使用 pass edit
命令在编辑器中打开密码文件。向文件添加额外的行以附加您需要的任何额外元数据。实际密码必须保留在第一行,没有前缀,以确保它能被 Pass 的剪贴板速记命令正确识别。

您可以通过将 --multiline
(-m
) 选项传递给 pass insert
命令来节省创建密码的时间。这将使您能够在终端中输入多行。完成后按 Ctrl+D 将凭据保存到您的商店中。
Git 整合
Pass 内置了对 Git 的支持。这使您能够对密码进行版本控制,并提供一种简单的机制来保持数据在机器之间同步。运行 pass git init
将 Git 添加到您的密码存储中。
您现在可以正常使用 Pass。每次添加、更改或删除密码时都会创建 Git 提交。您可以使用以 pass git
为前缀的常规 Git 命令与 Git 存储库进行交互:
pass git remote add origin example-server:/passwords.git
pass git push -u origin master
前面的命令将远程 Git 存储库添加到您的密码存储中。然后您可以 git push
将您的密码输入其中,以防万一您无法访问当前机器。
与其他工具交互
Pass 是一种有意最小化的解决方案。它比大多数图形密码管理器简单得多,支持符合 Unix 原则的基于文件的方法。强大的第三方项目生态系统支持 Pass 核心,实现与其他应用程序和操作系统的集成。
数据导入器可用于大多数流行的密码管理器,包括 1Password、Keepass 和 Lastpass。兼容的客户端应用程序适用于 Android、iOS 和 Windows。 dmenu
用户可以利用 passmenu
脚本快速搜索和选择密码,而无需打开终端窗口。
Pass 网站列出了许多著名的社区项目,这些项目扩展了该工具的功能并使数据可移植到其他平台。您可以从其手册页中获得有关使用 Pass 本身的更多指导,可通过在终端中运行 man pass
来访问。