KeePass

来自 ArchWiki

KeePass 是一种加密的密码数据库格式。它是在线密码管理器的替代方案,并支持所有主要平台。

该格式有两个版本:KeePass 1.x (Classic)KeePass 2.x

安装

官方软件仓库中提供了 KeePass 的三个主要实现

https://keepass.info || keepass
  • KeePassXC — KeePassX 的分支,积极维护并具有浏览器集成、SSH 代理支持、Secret Service、Yubikey、指纹读取器、TOTP 生成器和 KeeShare 等附加功能。还提供 CLI。
https://keepassxc.org || keepassxc
  • secrets — 一款基于 KeePass 构建的现代 GNOME 密码管理器。
https://gitlab.gnome.org/World/secrets/ || secrets

其他鲜为人知的替代方案可以在 AUR 中找到

  • keepassc — 一款基于 curses 的密码管理器,兼容 KeePass v.1.x 和 KeePassX。它使用 xsel 进行剪贴板功能。
https://raymontag.github.io/keepassc/ || keepasscAUR
  • kpcli — 用于 KeePass 数据库文件 *.kdb*.kdbx 的命令行界面。
https://sourceforge.net/projects/kpcli/ || kpcliAUR
  • keepmenu — Keepass 数据库文件的 Dmenu/Rofi 前端。
https://github.com/firecat53/keepmenu || keepmenuAUR
  • AuthPass — 基于 Flutter 的 KeePass 兼容密码管理器。默认带有 Gdrive、Dropbox 和 WebDav 的同步支持。
https://authpass.app || authpass-binAUR
  • keeweb — 一款与 KeePass 2.x 兼容的 Web 应用(在线/Electron)。KeeWeb 默认带有对主要云服务(Gdrive、Onedrive、Dropbox 等)的同步支持。自 2021 年 7 月 18 日发布 1.18.7 版本以来,没有积极的开发。
https://keeweb.info || keewebAUR nextcloud-app-keewebAUR keeweb-desktop-binAUR
  • KeePassX — 最初是 KeePass 的 Linux 移植版。keepassx2AUR 使用 KeePass 2.x 格式,但可以导入 1.x 数据库。它还允许您导入 PwManager 和 KWallet XML 数据库。它不支持插件。[1] 自 2016 年以来没有积极开发。[2]
https://www.keepassx.org/ || keepassxAUR keepassx2AUR

集成

许多 插件和扩展 可用于将 KeePass 集成到其他软件。KeePassX 和 KeePassXC 没有插件接口,但 KeePassXC 内置了各种集成。

KeePass 中插件安装

KeePass 默认安装在 /usr/share/keepass/。将 plugin.plgx 复制到 KeePass 安装目录下的 plugins 子目录中,如下所示

# mkdir /usr/share/keepass/plugins
# cp plugin.plgx /usr/share/keepass/plugins

浏览器集成

用于 KeePassXC 的 keepassxc-browser

keepassxc-browser 是 KeePassXC 内置浏览器集成的浏览器扩展,使用 native-messaging 和 libsodium 的传输加密。它的开发是为了取代 KeePassHTTP,因为 KeePassHTTP 的协议存在根本的安全问题。

开发者在以下位置提供浏览器扩展:

支持 Firefox 和 Chromium 分支。对于 librewolfAUR,打开 KeePassXC,转到工具 > 设置 > 浏览器集成 > 高级 > 配置位置:,并添加 ~/.librewolf/native-messaging-hosts

可以在 GitHub 上找到 源代码和工作原理的解释,KeePassXC 开发者在其网站上提供了 配置指南

用于 KeePass 的 keepassxc-browser

keepassxc-browser 也可以通过 AUR 中的 Keepass-natmsg 插件 (keepass-natmsgAUR) 与 KeePass 一起使用,并被推荐作为 KeePassHTTP 的继任者。

KeePassRPC 和 Kee

Kee (GitHub 仓库) 是 FirefoxChromium 的浏览器扩展,通过 KeePassRPC 集成 KeePass,KeePassRPC 是来自同一开发者的 KeePass 插件。

KeePass 插件可从 GitHub 或 AUR (keepass-plugin-rpcAUR) 获取。

浏览器扩展可以在 GitHubFirefox 附加组件chrome web store 中找到。

通过自动输入功能

浏览器和 KeePass(XC) 之间直接通道的替代方案是使用自动输入功能。

要在 Wayland 上启用自动输入功能,编辑 /usr/share/applications/org.keepassxc.KeePassXC.desktop 并将 Exec 的值更改为 keepassxc -platform xcb。或者,在启动 KeePassXC 之前设置 QT_QPA_PLATFORM=xcb 环境变量。但是,原生 Wayland 应用程序将无法与自动输入一起使用。例如,当在没有 Wayland 的情况下运行 Firefox 时,自动输入有效,但在 Wayland 下无效。

有一些浏览器扩展通过将页面 URL 放入窗口名称来支持这种方式

Nextcloud

在 Nextcloud 内部打开 Keepass 存储

Yubikey

感谢 KeePass 插件的贡献者,YubiKey 可以与 KeePass 集成。KeepassXC 提供对 Yubikey 挑战-响应的内置支持,无需插件。

与 KeePass 的配置

  1. StaticPassword
    配置 Yubikey 插槽之一以存储静态密码。您可以使密码强度高达 65 个字符(64 个字符,前导“!”)。然后,此密码可以用作 KeePass 数据库的主密码。
  2. 一次性密码 (OATH-HOTP)
    1. 从 KeePass 网站下载插件:https://keepass.info/plugins.html#otpkeyprov
    2. 使用 yubikey-personalization-gui-gitAUR 设置 OATH-HOTP
    3. 在高级模式下,取消勾选OATH Token Identifier
    4. 在 KeePass 中,密钥文件/提供程序下将显示名为一次性密码 (OATH HOTP) 的附加选项
    5. 复制密钥、密钥长度(6 或 8)和计数器(在 Yubikey 个性化 GUI 中,此参数称为移动因子种子
    6. 您可能需要将前瞻计数选项设置为大于 0 的值,请参阅 此线程 以获取更多信息
    7. 观看 此视频 以获得更多帮助
  3. 挑战-响应 (HMAC-SHA1)
    1. 从 AUR 获取插件:keepass-plugin-keechallengeAUR
    2. 在 KeePass 中,密钥文件/提供程序下将显示名为Yubikey 挑战-响应的附加选项
    3. 插件假定使用插槽 2

SSH 代理

KeePassXC 提供 SSH 代理支持,KeePass 也可通过使用 KeeAgent 插件获得类似功能。

此功能允许在 KeePass 数据库中存储 SSH 密钥,KeePassXC/KeeAgent 充当 OpenSSH 客户端,并动态地将密钥添加到代理并从中删除。

KeePassXC 中的此功能在其 FAQ 中进行了文档化。首先配置 SSH 代理 以在登录时启动,并确保设置了 SSH_AUTH_SOCK 变量。然后注销并重新登录。现在,在 KeePassXC 设置中,启用 SSH 代理集成。UI 中公开的 SSH_AUTH_SOCK 值应与您之前配置的值相符。

注意: gpg-agent 的 SSH 代理模拟 不支持使用 ssh-add -dssh-add -D 按需从代理中删除密钥,因此 KeePassXC/KeeAgent 在锁定数据库时无法删除它们。[3] [4]

Secret Service

KeePassXC 包含 Freedesktop.org Secret Service 集成。可以通过进入设置(在工具菜单下)来启用它,并选择您要共享的组(对于每个数据库,打开数据库 > 数据库设置...,然后转到Secret Service 集成选项卡)。

如果 KeePassXC 检测到另一个程序(例如 GNOME/Keyring)已经在提供该服务,则会拒绝启用其集成。您应该首先停止该程序;例如,对于 gnome-keyring停止 gnome-keyring-daemon.service 用户单元

请注意,您可能需要永久禁用该程序,否则 KeePassXC 的集成将在下次重启时失败。同样,对于 gnome-keyring禁用 gnome-keyring-daemon.socket(仍然适用于 systemd/User)。

这篇文章或章节正在考虑移除。

原因: 删除文件并破坏不相关软件包中的功能不是解决方案,请向 gnome-keyring 软件包或上游提交错误报告,以提供 [5] 中建议的单元文件(在 Talk:KeePass 中讨论)

为确保 dbus 不会再次激活 gnome-keyring(出于某种奇怪的原因绕过 systemd 套接字...)删除这些文件

  • /usr/share/dbus-1/services/org.gnome.keyring.service
  • /usr/share/dbus-1/services/org.gnome.keyring.PrivatePrompter.service
  • /usr/share/dbus-1/services/org.gnome.keyring.SystemPrompter.service
  • /usr/share/dbus-1/services/org.freedesktop.secrets.service
  • /usr/share/dbus-1/services/org.freedesktop.impl.portal.Secret.service
  • /etc/xdg/autostart/gnome-keyring-secrets.desktop
  • /etc/xdg/autostart/gnome-keyring-pkcs11.desktop
  • /etc/xdg/autostart/gnome-keyring-ssh.desktop

并编辑您的 pacman 配置,以防止在重新安装或更新软件包时重新创建这些冲突文件

/etc/pacman.conf
NoExtract   = usr/share/dbus-1/services/org.gnome.keyring.service usr/share/dbus-1/services/org.gnome.keyring.PrivatePrompter.service usr/share/dbus-1/services/org.gnome.keyring.SystemPrompter.service usr/share/dbus-1/services/org.freedesktop.secrets.service usr/share/dbus-1/services/org.freedesktop.impl.portal.Secret.service etc/xdg/autostart/gnome-keyring-secrets.desktop etc/xdg/autostart/gnome-keyring-pkcs11.desktop etc/xdg/autostart/gnome-keyring-ssh.desktop

自动启动

当应用程序请求密钥时,KeePassXC 不会自动启动,这可能会导致它们崩溃。D-Bus 自动启动文件 可以被创建

${XDG_DATA_HOME:-$HOME/.local/share}/dbus-1/services/org.freedesktop.secrets.service
[D-BUS Service]
Name=org.freedesktop.secrets
Exec=/usr/bin/keepassxc
提示: 以上操作仅适用于执行命令的用户。要将修复应用于所有用户,请以 root 身份在 /usr/local/share 中创建文件。
警告: 如果卸载 keepassxc,请记住删除此文件。否则,其他应用程序可能无法提供 Secret Service。

技巧与窍门

禁用您的剪贴板管理器

如果您是剪贴板管理器的狂热用户,您可能需要在启动 Keepass 之前禁用您的剪贴板管理器,然后在之后重新启动您的剪贴板管理器。

KeePassXC 实现具有在一段时间后自动清除剪贴板管理器的选项,足以粘贴复制的项目。

提示: 一些高级剪贴板管理器(如 CopyQ)具有忽略来自指定应用程序的输入的选项。

深色主题

要为 KeePass 启用深色主题,请安装 keepass-keethemeAUR。安装后,插件将在启动 KeePass 时进行编译。然后可以通过工具 > 深色主题或按 Ctrl+t 激活它。

故障排除

KeePassXC 2.6 的用户界面缩放问题

如果用户界面元素未正确缩放,请参阅 HiDPI#Qt 5上游错误报告

灰色的选项

某些选项(如启动时最小化并锁定)可能显示为灰色。根据 SourceForge 上的讨论,自 2.31 版本以来,KeePass 已禁用两个选项,因为它们在 Mono 上存在 broken behaviors

要强制启用这些功能,请使用 -wa-disable:1418 参数启动 KeePass。

错误缩放的托盘图标

在某些 桌面环境 中,由于 Mono 的错误,KeePass 的托盘图标可能显得太大或太小,根据 SourceForge 上的错误报告。

Keebuntu 包含三个插件以提供桌面集成

安装这些插件之一后,有时需要隐藏原始托盘图标,以防止系统托盘中出现重复图标。

Secret Service 集成

首先,检查存储密码的组是否已公开;工具 > 设置菜单包含每个数据库启用的组的列表。如果数据库未公开正确的组,请选择其选项卡,打开数据库 > 数据库设置...,然后在Secret Service 集成选项卡中选择该组)。

请注意,合并数据库可能会导致它停止公开任何组


KeePassXC、Plasma6 和 Wayland 的图形故障

如果您遇到图形故障,请安装 qt5-wayland 软件包。KeePassXC(截至 v2.7.7 版本)仍在使用 Qt5。

参见