v2.14.0 ยท validated on Debian 13

Passkey approval for the Linux login screen.

Approve SDDM login on your phone through OIDC Device Authorization while keeping the normal Linux password path structurally intact as the fail-safe fallback.

buildnative themesecurityrelease
SDDM Authelia Passkey approved login state
Overview

Authentication proof stays separate from Unix identity.

The long-running device flow lives in a local broker outside PAM. PAM only consumes a root-owned, short-lived approval marker for the exact selected account. NSS/SSSD remains authoritative for the Unix identity.

v2.14latest stable release
30visual regression cases
3deployment modes
1required CI Gate
Features

Security-first login plumbing.

Built for a login stack where failure should be explicit, recoverable and boring.

๐Ÿ“ฑ

Smartphone approval

OIDC Device Authorization with WebAuthn/passkey verification at the identity provider.

๐Ÿ”‘

Password fallback

The existing password route stays structurally available when no valid remote approval exists.

๐Ÿงฌ

Identity binding

Authentication proof is bound to the selected Linux account while NSS/SSSD remains authoritative.

๐Ÿงญ

Provider-neutral OIDC

Authelia by default, plus discovery-based support for standards-compliant providers.

๐Ÿ—๏ธ

Optional FIDO2/U2F

Local hardware keys remain an ambient upstream PAM path through pam_u2f.

๐Ÿ‘›

KWallet hand-off

Optional best-effort unlock through a dedicated root-only local secret service.

๐Ÿงฐ

Recovery tooling

Preflight, doctor, rollback and break-glass paths are designed to avoid login lockout.

๐Ÿ›ก๏ธ

Supply-chain gates

Signed packages, SBOMs, CodeQL, dependency review, Scorecard and protected-main CI.

Installation

Install from the signed Debian 13 APT repository.

Packages published on the APT mirror match the signed GitHub release assets. The installer deliberately does not restart SDDM for you.

Read the full installation guide โ†’

Verify release signatures โ†’

curl -fsSL https://apt.s3-dev.ovh/trixie-KEY.gpg \
  | sudo gpg --dearmor \
  -o /etc/apt/trusted.gpg.d/sddm-authelia-passkey-repo.gpg

echo "deb [signed-by=/etc/apt/trusted.gpg.d/sddm-authelia-passkey-repo.gpg] https://apt.s3-dev.ovh trixie main" \
  | sudo tee /etc/apt/sources.list.d/sddm-authelia-passkey.list

sudo apt update
sudo apt install sddm-authelia-passkey
Architecture

No authentication authority in QML.

The Native Theme presents state and starts existing actions. It never decides whether authentication succeeded.

SDDM Theme
โ†’
Local OIDC Broker
โ†’
Authelia / IdP
Approval marker
โ†’
PAM module
โ†’
Linux session

Full architecture and trust boundaries โ†’

Release

v2.14.0

Mechanism selector interaction, responsive UX and SmartphoneLoginPanel polish

Keyboard navigation, focus recovery, responsive selector stacking, compact smartphone confirmation layout and a corrected safe-cancel window.

stable
Roadmap

Toward the generic authentication mechanism framework.

The public GitHub Project is the live planning surface. The repository roadmap contains the detailed technical acceptance criteria.

v2.1 โ†’ v2.8

Provider-neutral OIDC, identity provenance, diagnostics, capability discovery, real provider conformance, failure policy and transaction binding.

v2.9 โ†’ v2.14

Capability-driven mechanism offering, generic mechanism model, visible selection UI, keyboard interaction, responsive UX and polished smartphone flow.

v3.0

Closure gate for the generic mechanism framework, with remaining provider/hardware validation tracked as explicit issues and milestones.

FAQ

Common questions.

Does this replace my Linux password?

No. The project is additive. If no valid approval marker exists, PAM continues through the normal password path.

Does the theme itself authenticate users?

No. QML is presentation only. SDDM, PAM, the broker and NSS/SSSD retain the authentication and identity authority.

Can I use a local FIDO2 key?

Yes, optionally through the existing pam_u2f path. That mechanism is ambient and is not presented as a fake clickable passkey button.

Is smartcard login implemented?

No. The UI intentionally does not advertise mechanisms that have no real capability signal and backend action.

Which systems are supported?

The validated reference environment is Debian 13, SDDM 0.21.x, KDE Plasma 6, Authelia 4.39+ and systemd 257+. Other environments are experimental unless documented.

Security

Fail closed where trust matters, fall back safely where recovery matters.

Approval markers are root-owned, short-lived and single-use. Provider origins are validated, identity proof is separated from Unix identity, unknown PAM layouts are refused, and protected `main` requires the aggregate CI Gate.

Community

Questions, ideas and contributions are public by default.

Use Discussions for support and early design work, issues for concrete defects/features, and pull requests for reviewed changes. Security reports use the private process described in the repository policy.