zx2c4 pass 是一个 unix 下的密码管理工具,使用 gpg 加密密码,配合 git 可以方便的实现密码同步,来彻底摆脱 browser 和其他各式各样非自由密码管理工具。
下面介绍 pass 的配置,密码迁移,以及各个客户端的使用方法。
配置
安装 pass
UNIX like 系统直接使用包管理器安装即可,我的系统是 Arch, 使用 pacman 安装:
# 已有 gpg 和 git 的忽略这步 |
如果是windows,可以尝试以下几个平替:
- gopass: go 实现的 pass,支持较全
- prs: rust 实现的 pass,但不支持 extension
- pass-winmenu: 可以实现 pass 的基本功能,但为 GUI 应用
- passpy: python 实现的 pass,功能补全且年久失修
- pass4win: 年久失修且已经 archiving ,不建议使用
初始化 pass
在使用 pass 之前,先生成 gpg 密钥对。已有 gpg 密钥对可以跳过这一步。
1 | gpg --full-generate-key # 然后根据提示输入对应信息和你要设置的密码 |
经过初始化,会生成 ~/.password-store
目录。目录下会生成一个 .gpg-id
文件,存放了用来加密密码的 gpg key 的 id。
如果你想要导入或导出 gpg key,使用下面的命令
# export |
注意,使用 --export-secret-keys
导出私钥,否则行为为导出公钥。
同步密码
使用 git 来同步密码,这里使用 github 作为远程仓库。推荐使用 ssh-key 进行认证,因为github很早就停止了使用密码认证。
首先创建你的 private repo,不用添加 gitignore 或 readme,然后初始化你的 .password-store 并 ref 到远程仓库。或者你可以跟我一样偷懒 clone 下来然后 把 .git 扔进 .password-store 里。 之后就可以使用git 来管理密码了。
从浏览器迁移
firefox,chrome,edge都支持导出密码为 csv 文件,首先导出密码到 csv 文件,然后安装 pass-import。 使用下面的命令导入密码:
pass import <csv-file> |
更多用法见 useage
导出完后记得清空浏览器保存的密码。如果开启了云同步,需要在 history 中删除密码后同步到云端。
- Chome 直接历史记录清除密码后会自动同步
- Edge 需要在历史记录中删除密码后手动强制同步
- firefox 在 password manager 右上角可以直接删除所有密码。
客户端
下面推荐几个个人使用的客户端:
- qtpass: pass 的 qt 客户端,支持图形化操作和一定 extension
- passff: firefox 插件,可以在浏览器中使用 pass 来填充密码,基本可以做到完全替代浏览器自带的密码管理器(
但是 windows 上支持稀烂修好了,详情见下) - Android-Password-Store: Android 客户端,支持加密解密和 git 同步,但是自动填充稀烂
passff on windows
首先安装 passff-host, 按照官网说明下载 .bat
文件,然后运行,命令行参数选择你要安装的浏览器,我这里是 firefox。执行完成后会下载几个文件,位置自己翻脚本里面,和你安装的浏览器有关(或者everything直接搜 passff.py
,对应文件夹就是)。安装 gopass
,推荐使用 scoop
安装。
然后对 passff.py
开头部分进行修改
1 | ############################################################################### |
然后就可以在 windows 上的浏览器中使用 pass 了。
扩展
pass 支持 extension,具体参考这个合集,找自己需要的用。