KeePass

来自 ArchWiki
(重定向自 KeePassXC

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

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

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

浏览器扩展可以在 GitHubFirefox 附加组件Chrome 网上应用店中找到。

通过自动输入功能

浏览器和 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. 静态密码
    配置一个 Yubikey 插槽以存储静态密码。您可以将密码设置为最多 65 个字符(带前导 "!" 时为 64 个字符)。然后,此密码可以用作您的 KeePass 数据库的主密码。
  2. 一次性密码 (OATH-HOTP)
    1. 从 KeePass 网站下载插件:https://keepass.info/plugins.html#otpkeyprov
    2. 使用 yubikey-personalization-gui-gitAUR 设置 OATH-HOTP
    3. 在高级模式下,取消勾选OATH 令牌标识符
    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 上存在损坏的行为

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

错误缩放的托盘图标

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

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

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

Secret Service 集成

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

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


KeePassXC、Plasma6 和 Wayland 的图形故障

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

参见