支持dmenu的cli keepass客户端

passhole的Python项目详细描述


https://img.shields.io/matrix/pykeepass:matrix.org.svg

passhole是keepass 1.x(v3)和2.x(v4)数据库的一个cli接口,受pass启发,支持dmenu。

https://i.imgur.com/lWLgbo3.gif

功能

  • 添加、删除、移动、编辑、重命名条目和组
  • 生成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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java有可能让Glassfish JAAS领域与一个已安装的应用程序共享一些类吗?   卸载weblogic时发生java log4j错误   java如何读取信息并将这些信息放入对象数组中   java线程池执行器。创建新线程时执行(Runnable命令)   java无法将project facet动态Web模块的版本更改为2.5   未添加到ArrayList Java Android的元素   javajavax。xml。绑定UnmarshaleException:意外元素(uri:,local:“ProcessCreditApplication”)。预期的元素是   java如何通过youtube API获取已删除视频的列表   如何在JavaBean验证中停止级联   java为什么我的ListView使我的应用程序崩溃,而不是列出我的条目?   java Guice多数据库自动切换   java(JDA)Mute命令在代码的第四行中断   推荐一种可通过Java中的随机访问进行更新的索引文件格式   java将arrayList添加到2x2 arrayList   java json对象数据发生变化,有时没有值   java使用Jedis库在redis中一次存储字符串列表   java快速排序分区   java setDaemon(false)是冗余的吗?   Java中的itext格式pdf