2012 年,那时刚接触 OTP,客户端除了 Google Authenticator,其它的几乎就没有。
每次一换手机,就接受一次教训——OTP 账号没备份,丢了。
2016 年之后,换上了 Authy,他能在云端保存 OTP 账号,很爽。
但是呢,OTP 账号保存在云端,还是有一点点不妥的。
这点小功能,为什么 Google 不做,可能也是出于这种考虑吧。
好了,随他们去吧。
对热爱命令行的人来说,密码管理工具,比 pass 更好用的,应该没有了吧。
有我也不用了。
命令行,纯文本,本地存储,基于老牌 GnuPG
,支持 OTP,有浏览器插件,有手机客户端。
还要什么自行车。
让这些密码管理和 OTP 工具,爱咋咋的吧。
介绍
- 设计场景是命令行,命令行用户自然是一等公民
- 作者社区和 dwm 有关,dwm 是 awesome 的爸爸
- 数据(密码和OTP)本地化存储,不依赖云端更安全
- 可复原 OTP 二维码,便于其它设备绑定 (这正是云端存储不安全的原因)
- 纯文本设计,除密码外,还支持二进制数据,用途广泛
- 提供了众多的导入工具,方便密码数据的迁移
备份还原
GnuPG 密钥是关键,做好私钥的备份和验证
- 备份
% gpg -o security --export-options backup --export-secret-keys YOUR_ID
- 还原
# 另一个设备 % gpg --import-options restore --import security
- 还原后信任
# 另一个设备 % gpg --edit-key YOUR_ID ...(略) trust 5 quit
增删改查
1# 新添一个密码(指定密码)
% pass insert foo/bar1
2# 新添一个密码(随机密码)
% pass generate foo/bar2
3# 编辑密码文件
% pass edit foo/bar1
4# 移动密码位置(或者重命名)
% pass mv foo/bar1 foo/bar3
5# 显示密码文件内容
% pass foo/bar3
% pass show foo/bar3
6# 复制密码(文件首行)
% pass -c foo/bar3
7# 复制文件的第二行
% pass -c2 foo/bar3
8# 查找密码文件名
% pass find bar
9# 查找密码文件内容
% pass grep 的地得
OTP
#1
% zbarimg -q --raw qrcode.png | pass otp append xxx/foo
#2
% pass otp xxx/foo
#3
% pass otp uri -q xxx/foo
- 从二维码注册 OTP
qrcode.png
是二维码截图文件,append
表示追加到已有的xxx/foo
密码文件 - 使用 OTP,显示当前的 OTP 密码。可加
-c
参数,复制到剪贴板 - 分享 OTP 的二维码
基于已有的 OTP 信息,生成二维码图片,方便其他人在其它设备上再次绑定
更多
-
管理二进制文件(以图片为例)
1# 【保存】将图片 `/tmp/test-image.png` 存入 `image/test.png` 密码中 % cat /tmp/test-image.png | pass insert -m image/test.png 2# 【复原】将密码 `image/test.png` 还原为图片文件 `/tmp/new-image.png` % pass show test-image > /tmp/new-image.png
-
懒得开命令行终端
如果连命令行窗口都懒得开,试试 passmenu。设定一个全局快捷键,效果杠杠的。 -
团队协作密码共享
pass 可以按目录指定不同的.gpg-id
。对于团队内可共享的密码,指定公共的.gpg-id
。不可共享的密码,则指定私密的.gpg-id
。具体可参考这里的实践。