Automating a YubiKey for Agentic Logins
- Source
- jon.oberheide.org
- Author
- Jon Oberheide
- Date
Security practitioner Jon Oberheide wrote up how he automated a YubiKey so an agent could complete headless browser logins. He starts by ranking common second-factor methods by how hard they are for an agent to automate, since sites without APIs leave agents facing the same login screens people do. FIDO2 hardware keys require a physical touch, which is the point of them and also what stops an agent. His build uses a relay host, a Raspberry Pi Pico and a reed relay to trigger that touch on request, with controls that limit who can ask the key to sign. The post is explicit that this has a cost. Giving an agent the ability to produce signatures on demand turns a factor designed to prove a human was present into a credential the agent can replay. The write-up is useful as much for that tradeoff map as for the hardware, because it shows which 2FA types an agent can pass and what protection is lost each time.

- Oberheide argues automation difficulty does not track security: passkeys are strong yet easy for an , which stores the key material and signs on demand, while SMS and voice-call OTP need rented virtual numbers and run into VoIP blocking and shortcode delivery limits.
- A YubiKey never releases its private key and its firmware will not sign without a touch, so his setup relays the FIDO challenge from headless Chromium in a Vercel to a physical host with the key plugged in, then returns the signature to the portal.
- The touch is faked electrically: copper tape and a wire on the gold sensor pad, pulled to ground by a SIP-1A05 reed relay after a PC817 optocoupler never worked. The wiring must rest disconnected at power-up, because the sensor appears to calibrate then.
- The relay host watches for CTAP keepalives with status UPNEEDED, then sends TOUCH 300 over USB serial to a Raspberry Pi Pico running MicroPython, which drives a GPIO pin to 3.3V for 300 ms, enough to close the 5V-rated relay.
- He reports the rig is faster, more reliable and more secure than the phone-call OTP it replaced, says Claude Code wrote the browser shim, relay and Pico firmware, and warns that handing replayable credentials to non-deterministic agents is risky.
Checking sign-in…
Loading comments…


