Skip to content

Fedora: Login keyring/wallet not unlocked after login (gnome-keyring, kwallet) #92

@kavau

Description

@kavau

On Fedora, the Login keyring (GNOME) and kwallet (KDE) are not unlocked after login. Chrome and other apps using the Secret Service API prompt for the keyring password on first use.

Root cause: on Fedora, gnome-keyring and kwallet daemons are managed by systemd user units, not by the session manager. pam_gnome_keyring.so auto_start and pam_kwallet.so auto_start launch the daemon during pam_open_session(), before the compositor starts and before the D-Bus session bus exists. The session's systemd-managed daemon starts independently and cannot receive the unlock state from the PAM-launched daemon.

Journal evidence (Fedora GNOME):

  • gkr-pam: gnome-keyring-daemon started properly -- PAM module OK
  • gnome-session-service: App gnome-keyring-secrets.desktop sets X-GNOME-Autostart-Phase, but gnome-session no longer manages session services -- daemon started by systemd user unit instead
  • gnome-keyring-daemon: discover_other_daemon: 1 -- daemons find each other but unlock state is not transferred

On CachyOS (Arch-based), both GNOME/COSMIC (gnome-keyring) and KDE (kwallet) unlock correctly. On CachyOS, the session manager (gnome-session / ksmserver) still starts the wallet daemon as a session component, so it is started after the compositor and D-Bus are available, and the PAM handoff works.

GDM works on Fedora because it ensures the D-Bus session bus is available before running the PAM session.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:daemonDaemon core: event loop, signal handling, main.c wiringbugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions