🔐
KeepassXC のシークレットサービス統合を有効にする
初見だと全く有効にできなかったので備忘録として残しておく。
環境は 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