I've had both a Yubikey Standard and a Yubikey Nano for quite a long time now, and my main use case involves static passwords.
Both my Standard and Nano are set up with
the same static password in slot 1. All of my machines and Yubikeys are configured to use the en-US keyboard layout.
Everything has always worked great on all systems I've tried (Linux, OSX, Windows) for both Yubikeys until recently.
My problem started unexpectedly about a week ago:
When I trigger slot 1 of the Nano on my primary Linux machine, many of the characters are incorrect. Oddly, though, triggering slot 1 of the Standard outputs the correct characters. When I trigger the same Nano on another machine running macOS, the static password is output correctly.
Prior to this, both Yubikeys had been working as expected on this machine/OS for 6+ months. Around the time things stopped working, I didn't change any configuration settings on either Yubikey (I didn't even have the tools installed), and I didn't change any settings on my system which should have any affect on this. The only thing I can think of that may have caused this would be updating some program via my package manager, but I can't pinpoint what that may have been.
For reference, my machine is a Mid-2014 Macbook Pro (MacBookPro11,3) running Arch Linux (Linux 4.14.5-1-ARCH x86_64 GNU/Linux).
My Standard is Firmware Version 2.3.3, and my Nano is Firmware Version 4.3.3.
Here are some sample outputs from both Yubikeys with the specified static password programmed:
Code:
Static password: abcABC123!@#
Yubikey Standard: abcABC123!@#
Yubikey Nano: abcaBC123123
----
Static password: qwertyuiopasdfghjklzxcvbnm
Yubikey Standard: qwertyuiopasdfghjklzxcvbnm
Yubikey Nano: qwertyuiopasdfghjklzxcvbnm
----
Static password: QWERTYUIOPASDFGHJKLZXCVBNM
Yubikey Standard: QWERTYUIOPASDFGHJKLZXCVBNM
Yubikey Nano: qwertyuiopasdfghjklZXCVBNM
----
Static password: `1234567890-=~!@#$%^&*()_+
Yubikey Standard: `1234567890-=~!@#$%^&*()_+
Yubikey Nano: `1234567890-=`1234567890-=
The only clue I may have found as to why this may be happening is the XKB keymaps for each Yubikey:
Code:
/bin/bash $ # find each Yubikey's device number
/bin/bash $ lsusb | grep Yubi
Bus 001 Device 025: ID 1050:0010 Yubico.com Yubikey (v1 or v2)
Bus 001 Device 022: ID 1050:0407 Yubico.com Yubikey 4 OTP+U2F+CCID
/bin/bash $ # output the loaded XKB keymap of each Yubikey
/bin/bash $ xkbcomp -i 025 $DISPLAY /tmp/yubikey-std.xkb
/bin/bash $ xkbcomp -i 022 $DISPLAY /tmp/yubikey-nano.xkb
I've uploaded both of the XKB files as well as a diff on GitHub Gist:
yubikey-std.xkb:
https://gist.github.com/b0o/b681522b069 ... ey-std-xkbyubikey-nano.xkb:
https://gist.github.com/b0o/b681522b069 ... y-nano-xkbdiff yubikey-std.xkb yubikey-nano.xkb:
https://gist.github.com/b0o/b681522b069 ... ikeys-diffI'm not exactly sure how or why Linux decided to assign each Yubikey a different XKB keymap by default, because I have done nothing to change this myself.
Any help would be appreciated, I can provide more information upon request.
Thank you!