在 Linux 终端中管理您的密码
Pass 是一个经典的UNIX风格的密码管理系统,它使用 GnuPG(GPG)进行加密,并将终端作为其主要接口。
如今,我们或多或少都有几十个密码。幸运的是,其中大部分密码可能是关于网站的,您可能通过互联网浏览器访问大多数网站,并且大多数浏览器都有内置的密码管理器。最常见的互联网浏览器还具有同步功能,可帮助您在其他不同设备上运行的浏览器之间分发密码,因此在需要时,您随时都有登录信息。如果这对您来说还不够,那么像 BitWarden 这样的优秀开源项目可以管理您的加密密码,保证只有您有解锁它们的密钥。这些解决办法有助于轻松维护唯一的密码,我会使用这些方便的系统来选择密码。但是我的密码存储的主要保管库比这些方法中都要简单得多。我主要使用 pass,一个经典的UNIX风格的密码管理系统,它使用 GnuPG(GPG)进行加密,终端作为其主要接口。
安装通行证
您可以从分发存储库安装该命令。
在 Fedora、Mageia 和类似的发行版上,你可以使用包管理器安装它:
$ sudo dnf install pass
在 Elementary、Mint 和其他基于 Debian 的发行版上:
$ sudo apt install pass
在macOS上,您可以使用 Homebrew 安装它:
$ brew install pass
配置 GnuPG
在使用 之前,您需要一个有效的 PGP("Pretty Good Privacy")密钥。如果已维护 PGP 密钥,则可以跳过此步骤,也可以选择创建专门用于 的新密钥。最常见的开源 PGP 实现是 GnuPG(GPG),它随 Linux 一起提供,您可以从 gpgtools.org,Homebrew或 Macports将其安装在 macOS 上。 要创建 GnuPG 密钥,请运行以下命令:passpass
$ gpg --generate-key
系统会提示您输入您的姓名和电子邮件地址,并为密钥创建密码。您的密钥是一个数字文件,只有您知道您的密码。结合在一起使用,这两个东西便可以锁定和解锁加密信息,例如包含密码的文件。
GPG 钥匙很像房子钥匙或车钥匙。如果您丢失了它,则无法获取它被锁定的任何内容。仅仅知道您的密码是不够的。
如果您已经管理了多个 SSH 密钥,则可能已经习惯了这一点。如果您不熟悉数字加密密钥,则可能需要一些时间来适应。您下次决定一时兴起尝试令人兴奋的新发行版前,记得备份目录,这样您就不会意外删除它了。~/.gnupg 进行备份并保持备份安全。
配置通行
要开始使用 ,必须初始化密码存储,该密码存储被定义为配置为使用特定加密密钥的存储位置。您可以通过与密钥关联的名称或数字指纹来指示要用于密码存储的 GPG 密钥。您自己的姓名通常是更简单的选择:
$ pass init seth
mkdir: created directory '/home/seth/.password-store/'
Password store initialized for seth
如果您设法忘记了自己的姓名,则可以使用以下命令看到与您的密钥关联的数字指纹和姓名:
$ gpg --list-keys
gpg --list-keys
/home/seth/.gnupg/pubring.kbx
-----------------------------
pub ed25519 2022-01-06 [SC] [expires: 2024-01-06]
2BFF94286461216C907CBA52F067996F13EF10D8
uid [ultimate] Seth Kenlon
sub cv25519 2022-01-06 [E] [expires: 2024-01-06]
使用指纹初始化密码存储与您的名字基本相同:
$ pass init 2BFF94286461216C907CBA52F067996F13EF10D8
存储密码
使用以下命令将密码添加到密码存储中:
$ pass add www.example.com
Enter password for www.example.com:
出现提示时,输入要添加的密码。
密码现在存储在您的密码存储中。您可以自己看看:
$ ls /root/.password-store/
www.example.com.gpg
当然,该文件是不可读的,如果您尝试运行或在其上运行,终端就会显示无法打印的字符(如果终端显示太不整洁,请使用修复您的终端。catlessreset)
使用通行证编辑密码
不同的在线活动我会使用不同的用户名,因此网站的用户名通常与密码一样重要。系统允许这样做,即使它默认情况下不会提示您这样做。您可以使用以下命令将用户名添加到密码文件中:
$ pass edit www.example.com
这将打开一个文本编辑器(特别是您设置为您的编辑器或环境变量),显示文件的内容。目前,这只是一个密码,但您可以添加用户名,甚至可以添加另一个URL或所需的任何信息。这是一个加密文件,因此您可以自由保留所需的内容。
bd%dc$3a49af49498bb6f31bc964718C
user: seth123
url: example.com
保存文件并将其关闭。
从通行证获取密码
要查看密码文件的内容,请使用以下命令:
$ pass show www.example.com
bd%dc$3a49af49498bb6f31bc964718C
user: seth123
url: www.example.org
搜索密码
有时很难记住密码是在哪里提交的,或者有些密码十分类似。此外,某些网站基础结构对不同的站点功能使用不同的 URL,因此,即使您对合作伙伴站点使用相同的登录信息,您也可以在这里提交密码。
如有疑问,请使用该命令显示搜索词的所有实例,包括文件名或文件内容:
$ pass grep example
www.example.com:
url: www.example.org
通过浏览器使用凭证
我也会使用互联网密码以外的信息,但网站却是我最常需要密码的地方。我通常会在计算机上的某个地方打开一个终端,因此Alt + Tab到终端并获取我需要的信息并不麻烦。但这不是我所做的,因为有插件可以与Web浏览器集成。
传递主机脚本
首先,安装主机脚本:
$ curl -sSL github.com/passff/passff-host/release/latest/download/install_host_app.sh
此安装脚本放置一个 Python 脚本,可帮助浏览器访问密码存储和 GPG 密钥。将它与您使用的浏览器的名称一起运行(或者不运行,以查看所有选项)
$ bash ./install_host_app.sh firefox
如果您使用多个浏览器,则可以为每个浏览器安装它。
传递附加组件
安装主机应用程序后,您可以为浏览器安装加载项或扩展。在浏览器的加载项或扩展管理器中搜索插件。
安装加载项,然后关闭并重新启动浏览器。
导航到您在密码存储中拥有其密码的网站。现在,登录文本字段右侧有一个小P图标。
单击P按钮可查看密码存储中匹配的站点名称的列表。
单击"笔和纸"图标以填写表单,或单击"纸飞机"图标以填充并自动提交表单。
简单的密码管理和完全集成!
尝试作为您的 Linux 密码管理器传递
对于想要使用他们熟悉的工具管理密码和个人信息的用户来说,该命令会是一个很好的选择。如果您已经习惯了 GPG 和终端,那么您可能会喜欢该系统。对于不希望将密码绑定到特定应用程序的用户来说,这也是一个重要的选择。也许您不只使用一个浏览器,或者您不喜欢这样的想法,即如果您决定停止使用应用程序,则可能很难从应用程序中提取密码。使用它 ,您可以在类似 UNIX 且简单的系统中保持对机密的控制。
翻译:2043xingyitong
参考资料:
Manage your passwords in the Linux terminal