systemd 的密钥环最佳实践

systemd 的密钥环最佳实践

有很多工具可以处理密钥环:ssh-agent、gpg-agent、gnome-keyring、kwallet、像钥匙串这样的包装器、与 GNU/Linux 内核对话的 keyctl。对于如何/何时启动它有针对不同环境的各种建议。

这使得它相当混乱。我使用带有 systemd 的现代 GNU/Linux 发行版,并且也使用 systemd --user 启动我的用户会话。我预计这种设置可以持续几十年,所以我想知道将钥匙圈放入图片中的最佳方法是什么?

主要用例是将 chromium/firefox 的密码存储在一个统一的位置。

我应该从我的用户 shell 自动启动脚本启动钥匙串吗(如果重要的话,我使用 Fish 进行交互,使用 dash 作为登录 shell)?现在“gnome-keyring-daemon --daemonize --login”是通过 PAM 生成的。我应该从用户 systemd 单元启动“gnome-keyring --start”吗?是否有一些 dbus 服务会在第一次请求时启动一些密钥环守护进程?

问题清单还在继续,但您已经明白了 - 获得密钥环即服务的正确方法是什么?

答案1

在我的机器(debian不稳定)上,ssh-agent和gpg-agent有自己的systemd用户服务/套接字文件。这意味着它们应该在用户登录时启动,或者在应用程序第一次尝试访问它们时激活。

关于 gnome-keyring,(ATM?)没有这样的 systemd 文件,并且 gnome-keyring 是由 PAM(如您提到的)和.desktop位于/etc/xdg/autostart/.位于那里的服务应该由您的会话管理器(gnome-session,...)启动。

我在 debian 上看到一个名为 的包,obsession其中包含/usr/bin/xdg-autostart我个人从未使用过该工具,但如果您不使用支持 XDG 规范的会话管理器,这可能会帮助您手动启动所需的组件

答案2

有多种方法可以启动 gnome-keyring(或任何其他密钥环服务)。

  1. 通过 systemd 用户服务,这将位于一个文件中gnome-keyring.service /etc/systemd/user/(使用 systemd 配置语法的文件)
  2. 通过 DBUS 自动启动服务,这将位于(使用 DBUS 配置语法的文件)org.gnome.keyring.service中的文件中。/usr/share/dbus-1/services/
  3. 通过 XDG 自动启动文件,这将gnome-keyring.desktop位于/etc/xdg/autostart/$HOME/.config/autostart
  4. 通过您的会话管理器,其中配置取决于管理器(例如,在 LXDE 中,keyring/command属性.config/lxsession/LXDE/desktop.conf

从根本上来说没有一个是更好的。

许多发行版都有多种选项,因此很难知道考虑哪一种。通常,DBUS 在 Systemd 之前,在 XDG 之前,在会话之前,但这可能会有所不同。

相关内容