大家好,我是良许。
现在是互联网时代,我们每天都要跟各种 APP 、网站打交道,而这些东西基本上都需要注册才可以使用。
但是账号一多,我们自己都经常记不清对应的密码了。有些小伙伴就一把梭,所有的账号密码都是一样。但这样操作的风险显而易见,一旦密码泄露,你所有的账号都会陷入风险之中!
在浏览器上,我们有 1Password、Dashlane、RoboForm,等等非常优秀的密码管理软件,但缺点是基本上都需要收费(不,这是我的缺点)~
本文介绍一款在 Linux 终端上就可以使用的密码管理器 pass
,这是一个经典的 UNIX 风格的密码管理系统,使用 GnuPG (GPG) 进行加密,小巧好用!
pass
在很多发行版软件库里都有,使用各自的安装命令即可完成安装。
在 Ubuntu、Elementary 等基于 Debian 的发行版上,使用 apt
命令安装:
$ sudo apt install pass
在 Fedora 及类似的发行版上,可以使用 dnf
命令安装:
$ sudo dnf install pass
在 macOS 上,可以使用 Homebrew
安装:
$ brew install pass
前文提到 pass
工具是使用 GnuPG 进行加密,所以在使用 pass
之前,我们需要一个有效的 PGP
(Pretty Good Privacy)密钥。如果你已经有了 PGP 密钥,则可以跳过此步骤。
要创建 GnuPG 密钥,需要运行以下命令:
$ gpg --generate-key
系统会提示你输入姓名和电子邮件地址,并为密钥创建密码。你的密钥是一个数字文件,密码只有你自己知道。之后我们就可以使用 pass
工具锁定和解锁加密信息,例如一个包含有密码的文件。
GPG 密钥非常重要,如果你失去了它,任何被它锁住的东西都将变得无法解锁,即使知道你的密码。所以,你一定要备份你的 ~/.gnupg
目录,这样下次如果重装系统,也不会意外删除它。
作为程序员,一定要有备份意识。
刚开始使用 pass
时,需要初始化密码仓库,这个密码仓库可以理解为将来你用来存储密码的地方。
你可以使用以下命令初始化 pass
工具:
$ pass init alvin mkdir: created directory '/home/alvin/.password-store/' Password store initialized for alvin
在这里,alvin
就是你的名字,因为到时可以有多人使用这个工具,所以需要区分一下。
如果你忘记了你初始化时所使用的名字,可以使用以下 gpg
命令查看与你的密钥关联的数字指纹和名称:
$ gpg --list-keys gpg --list-keys /home/alvin/.gnupg/pubring.kbx ----------------------------- pub ed25519 2022-01-06 [SC] [expires: 2024-01-06] 2BFF94286461216C907CBA52F067996F13EF10D8 uid [ultimate] Alvin Yan <alvin@example.com> sub cv25519 2022-01-06 [E] [expires: 2024-01-06]
可以使用 pass add
命令将密码添加到你的密码存储区:
$ pass add www.example.com Enter password for www.example.com:
按下回车后,会提示你输入要添加的密码。
输好密码后,密码将存储在你的密码仓库中,你可以看一眼这个文件:
$ ls /root/.password-store/ www.example.com.gpg
当然,该文件是不可读的,如果你尝试运行 cat
或 less
命令来查看,那么你会看到一堆乱码。
常在网上走,哪有不泄密。所以,为了防止撞库,最稳妥的方式就是为不同网站设置不同的账号和密码。直接使用 pass add
命令的话,默认只添加密码,但我们可以人工添加用户名。
使用 pass edit
命令可以将用户名添加到密码文件:
$ pass edit www.example.com
敲下回车后,密码文件将被打开。在这里,你可以添加用户名,甚至是另一个 URL 或其它想要的信息。这是一个加密文件,因此你可以记录任何你想加密的信息。
bd%dc$3a49af49498bb6f31bc964718C user: alvin123 url: example.com
想要查看密码文件的内容,可以使用 pass show
命令:
$ pass show www.example.com bd%dc$3a49af49498bb6f31bc964718C user: alvin123 url: www.example.org
有时候,你有可能忘记网站的域名是啥,但有可能零星记得网址里的某些单词,那么就可以使用 pass grep
命令以文件名或文件内容显示搜索词的所有结果:
$ pass grep example www.example.com: url: www.example.org
现在我们可以安全存储显示密码了,但这样还是很不方便。我们总不可能在上网的时候,需要填密码时还要打开终端,再找到密码,然后再填进密码框,简直让人抓狂!
好在 pass
工具有对应的脚本及工具可以让我们更方便使用。
首先,安装 pass
脚本:
$ curl -sSL github.com/passff/passff-host/release/latest/download/install_host_app.sh
这是一个 Python 脚本,它可以帮助你的浏览器访问你的密码仓库和 GPG 密钥。安装时,需要与所使用的浏览器的名称一起运行:
$ bash ./install_host_app.sh firefox
如果你使用多个浏览器,那么可以为每个浏览器安装这个脚本。
安装完脚本后,接下来就需要为浏览器安装 pass
插件。你可以在浏览器的插件中心找到 PassFF
插件,然后一键安装即可。
安装完插件之后,关闭并重新启动浏览器。
然后,我们再打开一个你存储过密码对应的站点,你会发现登录文本字段右侧有一个小 P 图标。
单击 P 按钮可查看密码仓库中匹配的站点名称列表。
点击笔和纸图标填写表格或点击纸飞机图标填写并自动提交表格。
搞定!
学习编程,千万不要急于求成,一定要多读一些经典书籍,多看源码,多下苦功夫去死磕代码,这样技术才能长进。给大家分享一些程序员必读经典书籍,一定要多读几遍:
免费送给大家,只求大家金指给我点个赞!
程序员必读经典书单(高清PDF版)
推荐阅读:
欢迎关注我的博客:良许Linux教程网,满满都是干货!