Last active
January 29, 2021 17:11
-
-
Save ju916/8f1267b43edfbd7be5127eb24045546f to your computer and use it in GitHub Desktop.
Udev Yubikey rules
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# handcrafted file to trigger events on | |
# removal/insertion of Yubico U2F-Tokens | |
# place in /etc/udev/rules.d | |
# Key inserted | |
ACTION=="add", SUBSYSTEM=="hid", ENV{HID_NAME}=="Yubico Security Key by Yubico", RUN+="/usr/local/bin/device_inserted.sh" | |
# Key removed | |
ACTION=="remove", SUBSYSTEM=="hid", ENV{HID_NAME}=="Yubico Security Key by Yubico", RUN+="/usr/local/bin/device_removed.sh" | |
Eine Alternative zum Matching auf HID_NAME könnte noch ein partielles Matching auf HID_ID mit der VendorId 1050
darstellen:
ACTION=="remove", SUBSYSTEM=="hid", ENV{HID_ID}="*:00001050:*", RUN+="/usr/local/bin/device_removed.sh"
Das funktioniert mit meinen Yubikeys und sollte auch mit dem U2F-Key so gehen.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Das triggern auf den HID_NAME
Yubico Security Key by Yubico
hat den Nachteil, dass andere Yubikey-Typen (Neo, 4er, 5er, usw.) nicht erkannt werden.Ein Yubikey 4 (nano) meldet sich beispielsweise mit:
Yubico Yubikey 4 OTP+U2F+CCID
Der Yubikey NEO mit
Yubico Yubikey NEO OTP+U2F+CCID
Ein Yubikey (2?) nano mit
Yubico Yubico Yubikey II
Vielleicht ist es sinnvoller auf
ATTRS{idVendor}=="1050"
und Subsysteminput
zu triggern, sofern die Yubico durchweg die gleiche ID 1050 nutzt. Bei all meinen Yubikeys (2 nano, 4 (nano) und NEO) war die idVendor gleich)Meine
udev
-Regel sieht so aus:ACTION=="remove", SUBSYSTEM=="input", ATTRS{idVendor}=="1050", RUN+="/usr/local/bin/yubikey_removed.sh"
Bei der Nutzung von mehreren Yubikeys (mein Szenario), sollte noch im Script "device_removed" die Seriennummer abgefragt werden. Sonst sperrt das System ja, egal welchen Key man zieht.
Sobald ich eine Lösung dafür habe, kommentiere ich entsprechend die Scrip-Datei.
Ermitteln der VendorID am besten über
lsusb
lsusb | grep Yubikey
bzw.lsusb | grep -P "(?<=\sID\s)[0-9a-f]+(?=:.*Yubikey)"
Ermitteln der HID-ID am besten über
udevadm
:udevadm monitor --udev --subsystem-match=hid --property
(Stick stecken und/oder entfernen)
EDIT: Ich gehe hier davon aus, dass der Yubikey auch als Input-Device bereit steht. Kann sein, dass bei den einfachen U2F-only Yubikeys das nicht der Fall ist, oder? Dann wäre meine Ergänzung nur fur alle Yubikeys außer dem "blauen" U2F-Key gültig.