Verwendung von Yubikey Neo für Login 2FA und Sperrbildschirm


13

Ich möchte mein Yubikey Neo verwenden, um mich bei Ubuntu 14.04 anzumelden. Außerdem wäre es praktisch, wenn der Bildschirm jedes Mal automatisch gesperrt würde, wenn ich den Yubikey ausstecken würde.

Antworten:


11

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

Ich habe es am 14.04 ausprobiert und es gab kein, ID_SERIAL_SHORTalso habe ich es einfach übersprungen.
Paweł Prażak

Ich weiß, dieser Thread ist alt, aber es ist immer noch das beste Ergebnis bei der Suche. Das Entfernen von ID_SERIAL_SHORT ist gefährlich, da Sie die für Ihren Schlüssel eindeutige Kennung entfernen. Angenommen, Sie möchten auch ein Skript zum Entsperren erstellen. Wenn ID_SERIAL_SHORT nicht vorhanden ist, haben Sie wahrscheinlich nicht die richtigen Flags mit dem Personalizer-Tool aktiviert.
Index

0

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 lightdmzu geben, um es zu lösen:

sudo chown lightdm:root /etc/yubico/[user]-[number]
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.