Ubuntu 22.04 Firefox Snap 破坏了 KeePassXC 集成和其他 NativeMessaging 协议 25 个应用程序

pro*_*roc 21 firefox-extensions snap keepassxc 22.04

我怎样才能让它恢复工作?由于快照,我的整个密码管理器集成现在被破坏了。使用 1password 的人也会遇到同样的问题。

关于“通过快照复制 ppa 安装”,我将复制我的评论:技术上是的,但这是一个很好的黑客,最终是一个解决方法(如果你只是想在升级后让一些本机传输工作,那么它不是问题你会搜索)。

Mar*_*rad 19

更新: Firefox snap 中的本机消息支持现已作为测试版提供。请注意,这是相当新鲜的 - 代码尚未合并到上游,因此不要指望它可以用于生产。Heise Online还发表了一篇德语文章,其中包含有关如何进行此操作的分步指南 - 如果您想尝试一下。


不幸的是,这个问题无法在 KeePassXC 端得到解决,到目前为止,FlatpakSnap都不支持 NativeMessaging(它们的沙箱技术阻止浏览器扩展与 KeePassXC 进程通信)。虽然解决方案的工作正在进行中,但我们所能做的就是解决这个问题(或者切换到仍然提供浏览器作为常规软件包的发行版,例如 Debian)。KeePassXC故障排除指南建议从官方 PPA 安装浏览器。这并不漂亮,但以下方法对我有用:

  1. 卸载 Firefox snap
    sudo snap remove firefox
    
    Run Code Online (Sandbox Code Playgroud)
  2. Ubuntu 提供了一个用于firefox安装 Snap 的过渡 Debian 软件包。我们需要确保来自 Mozilla PPA 的包具有更高的优先级(否则apt可能会再次“升级”到 Snap)。
    echo '
    Package: firefox
    Pin: release o=LP-PPA-mozillateam
    Pin-Priority: 1001
    ' | sudo tee /etc/apt/preferences.d/mozilla-firefox
    
    Run Code Online (Sandbox Code Playgroud) 如果您使用无人值守升级,您还需要运行以下命令以确保无人值守升级考虑 Mozilla PPA:
    echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
    
    Run Code Online (Sandbox Code Playgroud)
  3. 从 Mozilla 的 PPA 安装 Firefox:
    sudo add-apt-repository ppa:mozillateam/ppa
    sudo apt update
    sudo apt install firefox
    
    Run Code Online (Sandbox Code Playgroud)
  4. 禁用 Firefox 的 AppArmor 以确保 Firefox 扩展可以连接到 KeepassXC:
    sudo ln -s /etc/apparmor.d/usr.bin.firefox /etc/apparmor.d/disable/
    sudo apparmor_parser -R /etc/apparmor.d/usr.bin.firefox
    
    Run Code Online (Sandbox Code Playgroud)
  5. 运行KeePassXC并启用浏览器集成(菜单“工具”->“设置”->“浏览器集成”,勾选“启用浏览器集成”和“Firefox”)。
  6. 运行Firefox,打开 KeePassXC 扩展的设置 -> 连接数据库 -> 连接。

免责声明

这种方法的缺点是 AppArmor 被完全禁用 - 请注意这会削弱安全性。也许拥有更多 AppArmor 经验的人可以提供一种更安全的方法来让 NativeMessaging 再次工作?

故障排除

一些提示,以防您遇到问题:

  • 您可以通过打开“帮助”->“关于 Firefox”来检查您运行的是 Snap 版本还是普通版本的 Firefox。如果版本号没有提及“Snap”,则您正在运行常规版本: 在此输入图像描述
  • 您可以通过运行来检查 apt 优先级apt-cache policy firefox。验证 Mozilla PPA 的优先级是否高于官方 Ubuntu 存储库。输出可能如下所示:
    $ apt-cache policy firefox
    firefox:
      Installed: 101.0.1+build1-0ubuntu0.22.04.1~mt1
      Candidate: 101.0.1+build1-0ubuntu0.22.04.1~mt1
      Version table:
         1:1snap1-0ubuntu2 500
            500 http://de.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
    *** 101.0.1+build1-0ubuntu0.22.04.1~mt1 1001
            500 https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy/main amd64 Packages
            100 /var/lib/dpkg/status
    
    Run Code Online (Sandbox Code Playgroud)

  • 我刚刚在我的机器上测试了它,在我看来,这两个缺点都不再是问题了(不再?):“firefox”Mozilla Team PPA 软件包具有 Firefox 100 版本,而 ESR 版本位于单独的软件包“firefox”中-esr`。我也无需对 AppArmor 进行任何操作即可让 KeePassXC 与 Firefox 配合使用。看起来可用的“/etc/apparmor.d/usr.bin.firefox”是 PPA 中“firefox”包的一部分。 (2认同)

小智 5

我更喜欢使用具有本机消息支持的 Firefox Snap Beta(正如其他人提到的),而不是其他也有缺点的替代方案。安装它:

sudo snap refresh firefox --beta

在完全更新的 Ubuntu 22.04 LTS 上,我不必执行 Heise文章中提到的任何其他步骤,例如systemctl --user restart xdg-desktop-portal

Firefox beta (105.0b3)与官方 PPA中的KeePassXC (2.7.1)和 Firefox KeePassXC-Browser 扩展(版本 1.8.1)配合良好。其他 KeePassXC 软件包对我不起作用。安装 KeePassXC:

sudo add-apt-repository ppa:phoerious/keepassxc
sudo apt update
sudo apt install keepassxc
Run Code Online (Sandbox Code Playgroud)

  • 刚刚在 Ubuntu (Mate) 22.04 上进行了测试,这有效。只需要一个额外的步骤,如故障排除页面 https://github.com/keepassxreboot/keepassxc-browser/wiki/Troubleshooting-guide#5-ubuntu-snap 中所述。`flatpak 权限设置 webextensions org.keepassxc.keepassxc_browser snap.firefox yes` (3认同)