一个简单的命令行工具,用于与KeePassX数据库交互
项目描述
kpcli
一个简单的命令行工具,用于与KeePassX数据库交互。
KeePassX是一个跨平台密码管理应用程序。它作为MacOSX、Linux和Windows的GUI应用程序以及Android应用程序(KeePassDroid)提供,使其能够在多个设备上管理密码。
功能
- 查看详情:列出组和条目,获取单个条目的详细信息
- 从命令行添加新条目和更改密码
- 解决冲突:用户可以选择将KeePassX数据库保存在中央位置,例如Dropbox或其他同步软件。如果从多个设备打开并更新数据库,将生成“冲突副本”。kpcli避免了这些冲突,并提供了比较冲突副本并确定冲突所在位置的实用程序。
安装
使用pip
pip安装kpcli
从源代码
git clone https://github.com/rebkwok/kpcli.git
cd kpcli
poetry install # pip install poetry first if necessary
配置
kpcli将首先在环境变量中查找数据库配置,然后是在config.ini文件中。
(加密的)数据库密码可以通过在config.ini文件中将STORE_ENCRYPTED_PASSWORD
设置为True或在环境变量中设置来存储。kpcli将一次性提示输入密码,然后每隔24小时提示一次。
注意:风险自负!如果真的想的话,可以在config.ini文件或环境变量中将KEEPASSDB_PASSWORD
以明文形式设置。如果没有找到KEEPASSDB_PASSWORD
,kpcli将提示输入它。
配置文件
在 $(HOME)/.kp/config.ini 目录下创建一个配置文件,至少包含默认配置文件,以及数据库位置和凭证信息。
[default]
KEEPASSDB=/Users/me/mypassworddb.kdbx
如果您的数据库使用密钥文件,请提供密钥文件的位置。
[default]
KEEPASSDB=/path/to/mypassworddb.kdbx
KEYPASSDB_KEYFILE=/path/to/mykeyfile.key
可以为多个数据库设置多个配置文件,并通过 -p
标志切换。
[default]
KEEPASSDB=/path/to/db.kdbx
KEYPASSDB_KEYFILE=/path/to/mykeyfile.key
[work]
KEEPASSDB=/path/to/workdb.kdbx
默认情况下,复制到剪贴板的密码将在 5 秒后超时。要更改超时时间,请提供 KEYPASSDB_TIMEOUT
配置或环境变量。
环境变量
如果没有 config.ini 文件,kpcli 将尝试在环境变量 KEEPASSDB
、KEYPASSDB_KEYFILE
和 KEYPASSDB_PASSWORD
中查找配置(如果找不到,将提示输入密码)。
有关更详细的用法,请使用下面列出的任何 kpcli 命令的 --help
。
用法
$ kpcli [OPTIONS] COMMAND [ARGS]...
选项
-p, --profile TEXT
:指定要使用的配置文件 [默认:default]--loglevel TEXT
:[默认:INFO]--install-completion
:为当前 shell 安装自动完成功能。--show-completion
:显示当前 shell 的自动完成功能,以便复制或自定义安装。--help
:显示此信息并退出。
命令
组名称和条目标题可以是部分、不区分大小写的字符串,用于匹配。
ls
:列出组和条目add-group
:添加新组rm-group
:删除组get
:获取单个条目的详细信息cp
:将条目属性复制到剪贴板add
:添加新条目edit
:编辑条目的属性(除密码外)change-password
:更改条目密码rm
:删除条目compare
:比较可能冲突的 KeePassX 数据库副本并报告冲突
用法示例
列出组和条目
$ kpcli ls
Database: /path/to/db.kdbx
================================================================================
Groups
================================================================================
Root
Internet
Communications
...
$ kpcli ls --group comm --entries
Database: /path/to/db.kdbx
================================================================================
Communications
================================================================================
my email
work email
...
列出“工作”配置文件中的数据库组
$ kpcli --profile work ls
Database: /path/to/workdb.kdbx
================================================================================
Groups
================================================================================
Root
Work
...
获取条目
通过组和条目标题获取,两者之间用 / 分隔。注意允许部分匹配。
如果找到多个匹配的条目,所有条目都将列出。
$ kpcli get comm/email
Database: /path/to/db.kdbx
================================================================================
Communications/my email
================================================================================
name: Communications/my email
username: my@email.com
password: **********
URL:
Notes: This is my main email address
从条目复制属性(默认密码)到剪贴板
如果找到多个匹配的条目,kpcli 将提示选择。密码复制默认超时时间为 5 秒(通过在 config.ini
中设置 KEEPASS_TIMEOUT
来更改)
$ kpcli cp comm/email
Entry: Communications/my email
Password copied to clipboard; timeout in 5 seconds
Press any key to clear clipboard and exit:
$ kpcli cp comm/email username
Entry: Communications/my email
username copied to clipboard
从条目复制用户名和密码到剪贴板
首先复制用户名,然后等待按键,然后复制密码。
$ kpcli cp comm/email both
Entry: Communications/my email
Username 'me@myemail.com' copied to clipboard
Press any key to copy password: c
Password copied to clipboard; timeout in 5 seconds
Press any key to clear clipboard and exit:
添加条目
$ kpcli add
kpcli 将提示输入必填字段。
更改密码
$ kpcli change-password comm/email
kpcli 将提示输入新密码。
比较冲突的数据库
在下面的示例中,kpcli 找到要比较的一个冲突数据库。
标题为 "entry1" 的条目位于 "blue" 组的冲突数据库中,但在主数据库中不存在。
条目 "blue/entry2" 位于主数据库中,但在冲突数据库中不存在。
条目 "red/entry3" 同时存在于两个数据库中,但用户名和密码值存在冲突。
$ kpcli compare
Database: path/to/db.kdbx
Database password:
Looking for conflicting files...
================================================================================
Comparison db: path/to/db_conflicting_copy.kdbx
================================================================================
╔════════════╤═════════════╤════════════════════╗
║ Main │ Conflicting │ Conflicting fields ║
╠════════════╪═════════════╪════════════════════╣
║ - │ blue/entry1 │ ║
╟────────────┼─────────────┼────────────────────╢
║ blue/entry2│ - │ ║
╟────────────┼─────────────┼────────────────────╢
║ red/entry3 │ red/entry3 │ username, password ║
╚════════════╧═════════════╧════════════════════╝
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分发版
kpcli-0.5.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dd3ee56e94cd6d99e5f99d496d838ad395a42873e7961fb62f57f4fbce880e5d |
|
MD5 | 9d6e797891c9df147d0cc09bbbbf03b0 |
|
BLAKE2b-256 | 762233739913488e8613a2b33933106d4436bcfbab59d16af77e44dabf591898 |
kpcli-0.5.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1b77ea0629eff7bee155f5ab7578b76ed0cab4f75031d77246f33fa716b94d4 |
|
MD5 | a9095da41e6aba92cf049f54a6625097 |
|
BLAKE2b-256 | 33d4b165d3b649846c9f47f3d0476b922ca818fad4e3df2c852f52e171a27013 |