I am implementing passkey / WebAuthn authentication using a custom login UI. The same WebAuthn code works correctly on Windows and macOS, where users are offered options such as:
I would like to understand this behaviour from a Linux and browser support perspective, specifically:
Any insights, explanations, or recommended approaches would be appreciated.
- Saving a passkey to a phone using a QR code
- Using a platform authenticator (PIN/biometrics)
- Cross-device passkeys (e.g., phone-based authentication)
There is no option for QR-code–based phone authentication or other platform-based passkey flows, even though the site and WebAuthn configuration are the same.“Use your security key. Insert your security key and touch it.”
I would like to understand this behaviour from a Linux and browser support perspective, specifically:
- What is the current state of platform authenticator support on Linux for WebAuthn/passkeys?
- How do major browsers on Linux (Chrome, Chromium, Firefox) decide whether to show:
- Platform authenticators
- Cross-device (phone / QR code) passkeys
- External hardware security keys
- Is QR-code or phone-based passkey authentication supported on Linux at all, and if so, under what conditions?
- Do Linux desktop components (e.g., libfido2, gnome-keyring, KDE Wallet, system services) affect passkey availability?
- Are there known limitations or design decisions that cause Linux to default to external security keys only?
Any insights, explanations, or recommended approaches would be appreciated.

