支持dmenu的cli keepass客户端
passhole的Python项目详细描述
passhole是keepass 1.x(v3)和2.x(v4)数据库的一个cli接口,受pass启发,支持dmenu。
功能
- 添加、删除、移动、编辑、重命名条目和组
- 生成correct horse battery staple样式、字母数字、符号密码
- 暂时缓存数据库密码10分钟
- 通过键盘快捷键(使用type命令)自动填充所选表单
- 多个数据库
有关示例,请参见下面的内容;有关命令和选项的完整列表,请参见manual。
设置
pip install passhole ph init
必须先安装这些软件包:
ubuntu/debian-gcc libgpgme-devpython3-dev
fedora-gcc libgpgme-develpython3-devel
arch-gcc gpgme python3
示例用法
# add a new entry with manually created password >>> ph add github Username: Evidlo Password: Confirm: URL: github.com # add an entry with a generated alphanumeric password >>> ph add neopets -a Username: Evidlo URL: neopets.com # add a new group >>> ph add social/ # add an entry to `social/` with a 32 character password (alphanumeric + symbols) >>> ph add social/facebook -s 32 Username: evan@evanw.org URL: facebook.com # add an entry to `social/` with a correct-horse-battery-staple type password >>> ph add social/twitter -w Username: evan@evanw.org URL: twitter.com # list all entries >>> ph list github neopets [social] ├── facebook └── twitter # display contents of entry >>> ph show social/twitter Title: twitter Username: Evidlo Password: inns.ambien.travelling.throw.force URL: twitter.com # retrieve contents of specific field for use in scripts >>> ph show social/twitter --field password inns.ambien.travelling.throw.force
示例i3键绑定
# select entry using dmenu, then send password to keyboard bindsym $mod+p exec"ph type dmenu"# select entry using dmenu, then send username + password to keyboard bindsym $mod+Shift+p exec"ph type dmenu --tabbed"
排除GPG键故障
passhole使用gpg2将数据库密码加密存储在磁盘上,以利用gpg-agent的密码缓存功能。默认情况下,passhole将使用密钥环上的第一个gpg密钥,但这可以被重写。此密钥必须具有信任级别5(最终),并且应使用gpg2创建。如果使用gpg创建密钥,则可以将密钥导出到gpg2,如下所示。
gpg --export | gpg2 --import gpg --export-secret-keys | gpg2 --import