浏览器扩展
适用于 Chrome、Edge、Brave 和 Firefox 的 MV3 扩展。可对自托管服务器解锁(独立模式),或通过已解锁的 桌面应用(原生消息)填充。
主机名:com.openselfhosting.openkey
功能
- 独立保险库 — 用邮箱 + 主密码解锁;从服务器同步密文
- 原生桥接 — 桌面 OpenKey 已解锁时,通过原生消息填充与保存
- 自动填充 — 页面浮层、上下文菜单与键盘快捷键(登录与支付卡)
- 保存 / 更新 — 从页面捕获新登录写入保险库
- 通行密钥 — 拦截 WebAuthn
create/get;存储 ES256 凭证(扩展已解锁) - 卡片、加密货币与密钥 — 浏览并填充/复制保留区域
- 附件 — 列出并下载登录项的解密附件(独立模式)
- 共享与组织 — 列出/接受/撤销共享与组织邀请(独立模式)
键盘快捷键
| 操作 | Windows / Linux | macOS |
|---|---|---|
| 用 OpenKey 填充登录 | Ctrl+Shift+L | ⌘⇧L |
若快捷键被其他扩展占用,可在浏览器的扩展快捷键设置中确认或重新映射。
安装(未打包)
商店列表可能尚未发布。本地构建并加载:
cd openkey_extension
npm install
npm run build- Chrome / Edge / Brave:
chrome://extensions→ 开发者模式 → 加载已解压的扩展程序 → 选择dist/ - Firefox:
about:debugging→ 此 Firefox → 临时加载附加组件 → 选择dist/manifest.json
从弹窗或选项页复制扩展 ID — 在 Chromium 上连接桌面桥接时需要。
权限
扩展使用 <all_urls> 主机 / 内容脚本匹配,以便在你访问的站点上自动填充、捕获登录并拦截通行密钥(固定白名单无法覆盖开放网络)。密文同步与解锁留在本机或你的自托管服务器;OpenKey 不会把页面 HTML 外传到厂商云。若希望填充而不单独解锁扩展保险库,请优先 使用桌面应用。
解锁模式
自托管服务器
- 在弹窗或选项中设置 自托管服务器 URL。
- 创建账户(注册)或 解锁(prelogin + 使用与应用相同的邮箱和主密码登录)。
- 密文通过
POST /sync同步。主密码永不离开客户端。
桌面应用桥接
- 解锁 OpenKey 桌面应用。
- 启用自动填充 / 按下列平台步骤连接扩展。
- 在扩展中选择 使用桌面应用。
填充与保存走已解锁的应用 — 这些流程无需单独解锁扩展保险库。
可选:应用中 设置 → 浏览器扩展 → 复制离线保险库链接,用于气隙环境下的引导。
连接原生消息
Windows
打开 设置 → 自动填充 会在以下位置注册 openkey_native_host.exe:
HKCU\Software\...\NativeMessagingHosts\com.openselfhosting.openkey
对 Chromium,将未打包扩展 ID 写入:
%LOCALAPPDATA%\OpenKey\chrome_extension_id.txt
然后再次打开自动填充以重新生成主机清单。Firefox 自动使用 [email protected]。
保持保险库解锁(回环 TCP)。
macOS
解锁时,OpenKey 安装 openkey_native_host.py,并写入 Chrome / Chromium / Edge / Brave / Firefox 的 NativeMessagingHosts 目录。
- 加载未打包扩展并复制其 ID。
- 应用:设置 → 浏览器扩展 → 粘贴 ID → 连接扩展。
- 保持保险库解锁 → 扩展:使用桌面应用。
需要 PATH 上有 Python 3。
Linux
设置 → 自动填充 会在 ~/.config/google-chrome/、Chromium、Edge 与 ~/.mozilla/native-messaging-hosts/ 写入主机清单。
Chromium 扩展 ID 文件:
~/.local/share/OpenKey/chrome_extension_id.txt
然后再次点按自动填充。Firefox 使用 [email protected]。
桥接套接字:$XDG_RUNTIME_DIR/openkey-native.sock(保持保险库解锁)。
保存捕获的登录
登录提交(或登录按钮 / Enter)后,页内横幅提供 保存 或 更新:
- 原生桥接 — 在已解锁桌面应用上
createEntry/updateEntry - 独立模式 — 本地加密并通过同步推送密文
相同主机 + 用户名 + 密码会被忽略;密码变更会提示更新。
通行密钥
扩展解锁后,OpenKey 可处理站点上的 WebAuthn。页内对话框确认;选择 使用浏览器 可回退到平台认证器。
解锁后冒烟测试:webauthn.io 或在 openkey_extension 中运行 npx tsx src/passkey/smoke.test.ts。