Talk: Yubikey
From NixOS Wiki
pcscd is not strictly required
I've had my fair share of problems with the pcscd, namely that it often required restarts to function. Fortunately I noticed that gpg-agent can work without it just fine. The only thing standing in my way was a missing udev rule for the Yubikey Neo:
# Yubikey 4/5 U2F+CCID
SUBSYSTEM=="usb", ATTR{idVendor}=="1050", ATTR{idProduct}=="0406", ENV{ID_SECURITY_TOKEN}="1", GROUP="wheel"
I'm not putting this in the main article as it'd probably need an invasive edit since it mentions pcscd everywhere.
udev setup
I needed to set up udev to make the Yubikeys readable as well. My solution was to: 1 . Add libfido2 to services.dev.udev.packages 2. Create `users.groups.plugdev = {};` and add my user to the `plugdev` group.
Locking the screen with udev
- YubiKey 5C has
MODEL_ID=0403
. - YubiKey 5 NFC has
MODEL_ID=0407
. (as already mentioned in the wiki) - YubiKey [C and not-C] Bio has
MODEL_ID=0402
` but the MODEL_ID field isn't present at all. The only thing that matches for me is theHID_NAME
.
services.udev.extraRules = # 0403 = Yubikey 4/5 OTP+U2F = YubiKey 5C # 0407 = Yubikey 4/5 OTP+U2F+CCID = YubiKey 5 NFC ACTION=="remove",\ ENV{ID_BUS}=="usb",\ ENV{ID_MODEL_ID}=="0403|0407",\ ENV{ID_VENDOR_ID}=="1050",\ ENV{ID_VENDOR}=="Yubico",\ RUN+="${pkgs.systemd}/bin/loginctl lock-sessions" # 0402 = Yubikey 4/5 U2F = YubiKey Bio - FIDO Edition # 0402 = Yubikey 4/5 U2F = YubiKey C Bio - FIDO Edition ACTION=="remove",\ ENV{HID_NAME}=="Yubico YubiKey FIDO",\ RUN+="${pkgs.systemd}/bin/loginctl lock-sessions" ;