Use the CanoKey for daily authentication on idols-ai and shoukei, with the existing passwords, passphrases and per-host SSH keys as fallback. - sudo: pam_u2f with a shared origin (pam://ryan4yin) and a Nix-store authfile built from myvars.canokeyU2fKeys; the primary key is registered and touch-to-sudo works on idols-ai. - SSH: one resident ed25519-sk key (application=ssh:ryan4yin) exported to ~/.ssh/id_ed25519_sk; GitHub tries it before the per-host key. - shoukei LUKS: fido2-device=auto with token-timeout=10s. Update nixos-apple-silicon (linux-asahi 7.2.14), whose initrd adds thunderbolt_apple and reset_apple_cio so USB-C comes up before unlock. - GPG: scdaemon disable-ccid so it uses pcscd. - docs/security-keys.md: setup, PINs, enrollment, backup key and recovery; deduplicate the FIDO notes left by #515. Assisted-by: Claude Code (claude-opus-5-5)
Host - Shoukei
This is NixOS's configuration for my Macbook Pro 2022 M2, 16G RAM.
This laptop joins untrusted networks and uses DHCP by default. On the home Wi-Fi
(shadow_light_ryan) run just shoukei-home-wifi to pin 192.168.5.108; the recipe calls
scripts/shoukei-home-wifi-static.nu, and
vars/networking.nix records the address with homeOnly = true.
x86/x86_64 applications
The M2 uses 16 KiB pages, and FEX does not emulate 4 KiB guest pages, so x86/x86_64 binaries cannot
run directly on this kernel. game/ enables programs.x86-on-arm from
our fork of
rowanG077/nix-x86-on-aarch64, which runs FEX
inside a 4 KiB muvm microVM and registers both ELF handlers:
- run an x86/x86_64 ELF directly, or use
x86-arm run <program>; nix-shell -p x86pkgs.hello --run hellofor the x86 package set;steamandx86-arm-winefor games and Windows programs.
The microVM is capped at 6 GiB (memoryMiB) on this 16 GiB machine, and needs /dev/kvm plus a
running systemd user session. See WORKAROUNDS.md WA-021.
Because the host no longer registers qemu-user binfmt, podman run --platform=linux/amd64, x86
chroots, and local builds of uncached x86 derivations need a remote x86_64 builder (see
WORKAROUNDS.md WA-022).
Related: