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。具体可参考这里的实践。