🔐

KeepassXC のシークレットサービス統合を有効にする

2024/04/21に公開

初見だと全く有効にできなかったので備忘録として残しておく。

環境は Debian GNU/Linux の sid だけど、他のディストリビューションでもそれほど変わらないだろう。

gnome-keyring-daemon のプロセスがあの手この手で起動しようとしてくるので全て潰していく。

1. サービスとして登録されているものを潰す

systemctl --user stop gnome-keyring-daemon.service gnome-keyring-daemon.socket
sudo systemctl --global disable gnome-keyring-daemon.service gnome-keyring-daemon.socket

ユーザーレベルで止めてシステム全体で無効化する。ユーザー個別で無効化する場合は stop してから mask すればよいはず。

2. autostart 経由で起動しようとするのを潰す

以下のファイルの末尾に X-GNOME-Autostart-enabled=false を追加する。
元となるファイルは /etc/xdg/autostart からコピーする。

cp /etc/xdg/autostart/gnome-keyring-* $HOME/.config/autostart/
echo "X-GNOME-Autostart-enabled=false" >> $HOME/.config/autostart/gnome-keyring-pkcs11.desktop
echo "X-GNOME-Autostart-enabled=false" >> $HOME/.config/autostart/gnome-keyring-secrets.desktop
echo "X-GNOME-Autostart-enabled=false" >> $HOME/.config/autostart/gnome-keyring-ssh.desktop

3. ログイン時にPAM 経由で起動しようとするのを潰す

sudo pam-auth-update

GNOME Keyring Daemon - Login keyring management のチェックを外す。

そうすると関連するエントリが無効化される。/etc/pam.d 以下を確認するとわかる。

4. D-BUS Service 経由で起動しようとするのを潰す

以下のコマンドを実行し、keepassxc を起動するように変更する。

sudo mkdir -p /usr/local/share/dbus-1/services
sudo cp $(rg --files-with-matches gnome-keyring-daemon /usr/share/dbus-1/services/) /usr/local/share/dbus-1/services
sudo sd "Exec=.*" 'Exec=/usr/bin/keepassxc --config $$HOME/.config/keepassxc/keepassxc.ini' /usr/local/share/dbus-1/services/*.service

5. 再起動する

これで再起動すると KeepassXC でシークレットサービス統合を有効化できる。

参考

Discussion