45

Passkeys are a new feature that is being supported more and more. The FIDO alliance released a standard for passkeys. Apple announced support for passkeys on iOS 16 and macOS with Safari 16.1, Google say they will support it in Chrome, and Microsoft will support it in Edge and Windows Hello. PayPal recently rolled out support on their websites.

Here's a website that demonstrates passkey functionality: https://www.passkeys.io/

My question is: does Ubuntu support passkeys? Do browsers on Ubuntu (like Firefox or Chromium) support passkeys?

pzrq
  • 301
Flimm
  • 44,031

2 Answers2

35

My Experience as of March 2024.

I tested all the methods below on a passkey demo site https://www.passkeys.io/ . This site allows you to create an account with an email address as the userID and a passkey. It also allows you to create additional passkeys using different hardware/software.

TL;DR

KeePassXC seems like the best way to create, store and manage passkeys for Ubuntu, among those I have tried.

Ubuntu OS level support

My computers do not have fingerprint scanners. Without additional hardware or software neither Chrome nor Firefox gives me the option to generate passkeys on the webpages that support it. As far as I can tell there is no OS level support outside the browsers for passkeys.

Passkey official device support page has the following table:

enter image description here

The latest KeePassXC from the PPA can store and use passkeys. See the Additional Software section below.

Additional Hardware

Google Titan Security Key

This is another alternative to Yubikeys described in the accepted answer. I use a Google Titan Security Key (USB C one).

Titan Security Keys

This key can store up to 250 passkeys in it. As far as I know, there is no way to copy, move, delete, or otherwise manually manage the passkeys stored in this USB key.

Android Phone

Passkey official page says: Passkeys created in iOS, iPadOS, and Android can be used on Ubuntu devices in Edge and Chrome using FIDO cross device authentication

Passkeys created using a phone are stored online in the Google Password Manager. However, just Chrome in Ubuntu without an Android phone can't use this option, as far as I can tell.

Update September 26, 2024: Now google Chrome can create and/or reuse the passkeys already created using a phone directly in Ubuntu. First time you use an existing passkey in Chrome, it will ask you to create a six digit pin. This only works for sites that use passkeys instead of passwords. For sites that use passkeys as a 2FA method, one has to still use the phone as the second factor of authentication, as described below.

I use a Google Pixel phone as a nearby passkey authentication device. But any recent version of iOS or Android phone should work.

Some websites allow passkey authentication using a nearby device. In this case, the phone. Once the phone is set up for a particular website for passkey authentication, the website sends a message to the phone and authentication is completed with bio-metric authentication like face recognition or fingerprint using the phone's camera/sensor.

A QR code from the website may need to be scanned using the phone to crate passkey using a phone.

Bluetooth must work on both the phone and the Ubuntu computer for this to work.

Reference: https://www.passkeys.io/#How-to-use-a-passkey

Additional Software

Instead of using an USB-key like the Google Titan or the Yubikey, or a phone or tablet as additional hardware, You could use a password management software. The only one I have tried is KeePassXC.

KeePassXC (version 2.7.7 and above)

I installed KeePassXC from the PPA and the browser extensions for Chrome and Firefox. In the Settings page of the KeePassXC-Browser Extension, scroll down in the General Tab till you see the Passkeys section. Make sure both

  1. Enable Passkeys
  2. Enable PassKeys Fallback

boxes are checked.

enter image description here

I tried this in Firefox and Chrome. The KeePassXC application (and the database) was open in the background and the browser extension was active. I already created the first passkey and took the screenshots during creation of a second passkey under the same account. When I clicked on the Create a passkey button on the web, the following popup showed up from the KeePassXC browser:

enter image description here

Pressing the Cancel button gave me the "Fall back option" of using the USB-Key by showing the Enter PIN popup window:

enter image description here

By entering the PIN of my USB-key, I could create a new passkey and store it in the Google Titan Security Key.

In chrome I could press Use a different passkey button instead of the PIN, and get another popup to store the passkey on my phone:

enter image description here

This option was not available in Firefox.

See the official KeePassXC guide for passkey for more details.

Browser Experiences

I have only tried Chrome and Firefox.

Chrome

I found that it is easier to create new passkeys in Chrome as compared with Firefox. In some sites Firefox won't give me the option to create a passkey, while it would in Chrome.

The creation of a passkey on the USB-key involves entering the PIN and touching the touch-pad on the USB-key when prompted. Chrome also allows creation of a passkey to be kept online by selecting the phone or nearby authentication device. Finally, I could also create a passkey using KeePassXC as long as I had the password database open in the app and the browser extension installed and configured for passkeys.

Once the passkey is created for a website and is stored in the USB-key, the Google Password Manager, or in KeePassXC, I can login to that site by either:

  1. Plugging in the USB-key, entering the PIN, and touching the touch pad on the USB-key.
  2. Selecting my Phone from list of devices and following the instructions on the phone.
  3. Clicking on the Authenticate button on the popup from the KeePassXC browser extension.

Note, different websites have taken different approaches to using passkeys. Some use it instead of password. Others use it along with the password as a form of second factor in a two factor authentication process.

Firefox

My experience with Firefox has been flaky. In most sites I can use the passkey in Firefox once it is created using Chrome. One exception I have found is Amazon. I can use the passkey stored in the USB-key or KeePassXc to log into Amazon using Chrome. This option is not offered by Amazon in Firefox.

Firefox does not give me the opportunity to use my phone as the passkey storage and manager.

A list of sites I have tried:

Updated on May 4, 2024

Site Titan Key Titan Key Phone KeepPassXC KeepPassXC
Chrome Firefox Chrome Chrome Firefox
Synology Yes Yes Yes Yes Yes
Amazon Yes Yes Yes Yes Yes
Dropbox Yes Yes Yes Yes Yes
Google Yes Yes Yes Yes Yes
Microsoft Yes Yes Yes No No
Yahoo Yes Yes Yes Yes Yes
Bank of America No No Yes
CVS No Yes No No No
Caremark No No No No No
Home Depot No No No No No
LinkedIn No No No No No

Screenshot of the old table

Passkeys should work in all the sites mentioned in the table (and screenshot) above. However, those towards the bottom of the list did not offer the passkey option when I tried to create one.

Home Depot allowed me to create a passkey using KeePassXC, but I didn't get the option to use the passkey when I tried to login.

Summary

I have tried three options for Ubuntu to create and store passkeys for passkey enabled websites:

  1. Security Key (USB): Disadvantages: There is no way to manually manage or export/import the stored passkeys.
  2. Nearby Device (Phone): Disadvantages: The passkeys are stored online. There is no way to export/import passkeys. Does not work with Firefox.
  3. Password Manager (KeePassXC): Advantage: Passkeys are stored locally.

Hope this helps

user68186
  • 37,461
7

You can use passkeys on Ubuntu with these browsers:

  • Google Chrome

  • Microsoft Edge (there's a version available for Linux)

  • Mozilla Firefox, with this clarification:

    • Web Platform support of Passkeys is available on [...] Linux, (though there is not platform passkey provider on Linux. We support Passkeys stored on USB security keys on Linux).
    • Sign-in with nearby Device is [not] available on [...] Linux, though Chrome does not support nearby on Linux either.

Some password manager extensions (like Bitwarden) support passkeys on Firefox.

These security capabilities are supported:

  • Security keys like Yubikey (but only certain versions, my old Yubikey did not work) Photo of Yubikey devices
  • Not supported: face recognition
  • Not supported: fingerprint recognition

Try it out at this website: https://www.passkeys.io/

If you have an updated Android smartphone or iPhone, try it out there as well using the same website. The experience is noticeably better there.

Flimm
  • 44,031