跳转至内容

KeePass

来自 ArchWiki

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

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

安装

在官方仓库中有三个主要的 KeePass 实现

https://keepass.info || keepass
  • KeePassXC — KeePassX 的一个分支,积极维护,并具有额外的功能,如浏览器集成、SSH 代理支持、Secret Service、Yubikey、指纹读取器、TOTP 生成器和 KeeShare。还通过 keepassxc-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 安装目录下的插件子目录,如下所示

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

浏览器集成

KeePassXC 的 keepassxc-browser

keepassxc-browser 是 KeePassXC 内置的浏览器扩展,使用原生消息传递和 libsodium 的传输加密。它是为取代 KeePassHTTP 而开发的,因为 KeePassHTTP 的协议存在根本性的安全问题。

开发者在以下地方提供浏览器扩展:

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

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

KeePass 的 keepassxc-browser

本文或本节正考虑移除。

原因:请注意,开发者自 2024 年起将 keepassnatmsg 置于“维护”状态,此后没有开发。应避免使用。请参阅此处的讨论:https://github.com/smorks/keepassnatmsg/discussions/104(在 Talk:KeePass 中讨论)

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

KeePassRPC 和 Kee

KeeGitHub 仓库)是适用于 FirefoxChromium 的浏览器扩展,它通过 KeePassRPC(同一开发者的 KeePass 插件)集成 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 放入窗口名称来支持此方式

警告 自动输入具有自身的风险和局限性,因此请检查您使用的密码保险箱的技术文档:KeePassKeePassXC

Nextcloud

本文或本节正考虑移除。

原因:不再维护 正在寻找维护者。(在 Talk:KeePass 中讨论)
在 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 中,Key file / provider 下会出现一个附加选项,名为 One-Time Passwords (OATH HOTP)
    5. 复制密钥、密钥长度(6 或 8)和计数器(在 Yubikey personalization GUI 中,此参数称为 Moving Factor Seed
    6. 您可能需要将 Look-ahead count 选项设置为大于 0 的值,有关更多信息,请参阅 此帖子
    7. 有关更多帮助,请参阅 此视频
  3. 质询-响应(HMAC-SHA1)
    1. 从 AUR 获取插件:keepass-plugin-keechallengeAUR
    2. 在 KeePass 中,Key file / provider 下会出现一个附加选项,名为 Yubikey challenge-response
    3. 插件假定使用插槽 2

SSH 代理

KeePassXC 提供 SSH 代理支持,KeePass 也可以使用 KeeAgent 插件实现类似功能。

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

KeePassXC 中的此功能在其 FAQ 中有记录。首先配置 SSH 代理在登录时启动,并确保 SSH_AUTH_SOCK 变量已设置。然后注销并重新登录。现在,在 KeePassXC 设置中,启用 SSH 代理集成。UI 中显示的 SSH_AUTH_SOCK 值应与您之前配置的值相匹配。

注意 gpg-agentSSH 代理仿真不支持按需从代理中移除密钥(使用 ssh-add -dssh-add -D),因此 KeePassXC/KeeAgent 在锁定数据库时无法移除它们。[3] [4]

Secret Service

KeePassXC 包含 Freedesktop.org Secret Service 集成。它允许外部应用程序将 KeePassXC 用作加密数据库(又名 存储库、钱包或密钥环)来存储用户凭据(例如,消息应用程序、游戏)。

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

如果 KeePassXC 检测到另一个程序(例如 GNOME/Keyring)已提供该服务,它将拒绝启用其集成。您应该先停止该程序(例如,通过停止 gnome-keyring-daemon.service 用户单元,适用于 gnome-keyring)。请注意,您可能需要永久禁用该程序,否则 KeePassXC 的集成将在下次重启时失败(例如,通过禁用 systemd/Usergnome-keyring-daemon.socket,适用于 gnome-keyring)。

提示 为了避免其他应用程序每次访问数据库时都需要确认,但允许透明地访问(如 GNOME Keyring 或 KDE Keyring),您可以转到 工具 > Secret Service Integration 并取消勾选两个 Confirm when [...] 复选框。

请求访问数据库的应用程序将通过 D-Bus 连接到 KeePassXC,其中 KeePassXC 将被应用程序“视为”与 GNOME libsecret 相同。将暴露的数据库可以存储在磁盘上的任何位置,就像任何其他 KeePassXC 数据库一样,并且在该数据库的主密码将是将来应用程序想要检索凭据时需要输入的密码。

提示 请注意,如果应用程序在数据库尚未创建时尝试访问 KeePassXC 数据库,由于超时,该过程可能会“冻结”一到两分钟,然后将出现数据库创建的弹出窗口。
警告 请注意,应用程序(例如 Tutanota 使用 Chromium 和 Electron 作为后端)可能无法访问 Chromium 的 Safe Storage,如果 KeePassXC 数据库尚未由用户手动打开或通过 D-Bus 自动启动文件打开。

与 GNOME Keyring 的冲突

本文或本节正考虑移除。

原因:删除文件并破坏不相关软件包的功能不是解决方案,请向 gnome-keyring 软件包或上游提交 bug,以提供建议的单元文件,如 [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

自启动

当应用程序请求 secrets 时,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 时进行编译。然后可以通过 工具 > Dark Theme 激活它,或按 Ctrl+t

同步

在不使用专用插件的情况下,KeePass 数据库非常适合通过 Syncthing 进行同步。在发生冲突时,一些应用程序提供了解决冲突的方法,例如 KeePassXC 的 Merge from database 功能。

故障排除

KeePassXC 2.6 的用户界面缩放问题

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

灰色选项

某些选项,如 Start minimized and locked,可能显示为灰色。根据 SourceForge 上的讨论,从 2.31 版本开始,KeePass 由于在 Mono 上的 错误行为而禁用了这两个选项。

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

错误缩放的托盘图标

在某些 桌面环境中,KeePass 的托盘图标可能因 Mono 的 bug 而显得过大或过小,根据 SourceForge 上的 bug 报告。

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

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

Secret Service 集成

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

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


KeePassXC、Plasma6 和 Wayland 的图形故障

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

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.