Antworten:
Zuerst müssen wir den Yubikey für die Challenge-Response konfigurieren. Ein gutes Handbuch für Linux finden Sie bei Yubico unter https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html
Nun solltest du in der Lage sein, deinen Yubikey zur Authentifizierung beim Login zu verwenden. Ein praktisches Teil fehlt: Die automatische Sperre des Bildschirms, wenn der Yubikey entfernt wird.
Ich habe das HowTo aus den Yubico-Foren ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ) leicht an LightDM in 14.04 und das Yubikey Neo angepasst.
Erstellen Sie zunächst eine neue Datei mit den Befehlen, um den Bildschirm zu sperren, wenn der Yubikey nicht vorhanden ist:
sudo nano /usr/local/bin/yubikey
Schreiben Sie folgendes in die Datei:
#!/bin/bash
# Double checking if the Yubikey is actually removed, Challenge-Response won't trigger the screensaver this way.
if [ -z "$(lsusb | grep Yubico)" ]; then
logger "YubiKey Removed or Changed"
# Running the LightDM lock command
export XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0"
/usr/bin/dm-tool lock
fi
Der größte Unterschied zur Originaldatei ist die Verwendung des dm-Tools (zum Sperren des Bildschirms mit lightdm) und des Suchbegriffs Yubico, da der Yubikey Neo bei „Yubico.com“ in lsusb registriert ist.
Schließen Sie und speichern Sie die Datei. Außerdem müssen wir die Datei ausführbar machen:
sudo chmod +x /usr/local/bin/yubikey
Als nächstes müssen wir die Eigenschaften des Yubikey für eine ordnungsgemäße Zuordnung finden.
Hierzu muss der USB-Deskriptor aktiviert sein. Details finden Sie im Yubico-Forum .
Geben Sie in einem neuen Terminal den Befehl ein
udevadm monitor --environment --udev
Jetzt steckst du deinen Yubikey (aus) und erhältst eine Liste mit Ids. Auf der Suche nach
ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT
Sie werden in der udev-Datei zur Erkennung des Yubikey verwendet.
Hinweis: Die Vendor ID ändert sich, wenn Sie den Stick neu konfigurieren (zB mit CCID)
Erstellen Sie außerdem eine Datei mit
sudo nano /etc/udev/rules.d/85-yubikey.rules
und geben Sie Folgendes ein
# Yubikey Udev Rule: running a bash script in case your Yubikey is removed
ACTION=="remove", ENV{ID_VENDOR_ID}=="1050", ENV{ID_MODEL_ID}=="0010", ENV{ID_SERIAL_SHORT}=="0001711399", RUN+="/usr/local/bin/yubikey"
Ändern Sie die ID entsprechend Ihrem Schlüssel. Hinweis: Sie können weitere yubikey hinzufügen, indem Sie einfach kopieren und die Zeile mit anderen IDs einfügen.
Schließen Sie und speichern Sie die Datei. Schließlich muss der udev-Dienst die Regeln neu laden:
sudo udevadm control --reload-rules
sudo service udev reload
Sie können auch hinzufügen, dass alle TTYs mit getötet werden pkill -KILL -t
:
if [ -z "$(lsusb | grep Yubico)" ]; then
logger "YubiKey Removed or Changed"
# Running the LightDM lock command
export XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0"
/usr/bin/dm-tool lock
ACTIVE_TTY=$(who | awk '{ print $2 }' | grep tty | uniq)
echo $ACTIVE_TTY | xargs -I {} pkill -KILL -t {}
fi
Auch scheint es ein Problem mit Dateiberechtigungen lightdm
zu geben, um es zu lösen:
sudo chown lightdm:root /etc/yubico/[user]-[number]
ID_SERIAL_SHORT
also habe ich es einfach übersprungen.