Utilisation de Yubikey Neo pour la connexion 2FA et l'écran de verrouillage


13

Je veux utiliser mon Yubikey Neo pour me connecter à Ubuntu 14.04. De plus, ce serait pratique si l'écran est verrouillé automatiquement à chaque fois que je débranche le Yubikey.

Réponses:


11

Tout d'abord, nous devons configurer le Yubikey pour la réponse au défi. Un bon manuel pour Linux est donné par Yubico sous https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html

Vous devriez maintenant pouvoir utiliser votre yubikey pour l'authentification lors de la connexion. Il manque une pièce pratique: le verrouillage automatique de l'écran lorsque le Yubikey est supprimé.

J'ai légèrement adapté le HowTo des forums Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ) pour correspondre à LightDM en 14.04 et au Yubikey Neo.

Tout d'abord, créez un nouveau fichier avec les commandes pour verrouiller l'écran lorsque le Yubikey n'est pas présent:

sudo nano /usr/local/bin/yubikey

Écrivez ce qui suit dans le fichier:

#!/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

Les plus grandes différences par rapport au fichier d'origine sont l'utilisation de l'outil dm (pour verrouiller l'écran avec lightdm) et le terme de recherche Yubico, car le Yubikey Neo est enregistré auprès de «Yubico.com» dans lsusb.

Fermez et enregistrez le fichier. De plus, nous devons rendre le fichier exécutable:

sudo chmod +x /usr/local/bin/yubikey

Ensuite, nous devons trouver les propriétés du Yubikey pour une affectation appropriée.

Pour cela, le descripteur USB doit être activé. Les détails peuvent être trouvés sur le forum Yubico .

Dans un nouveau type de terminal dans la commande

udevadm monitor --environment --udev

Maintenant, vous (dé-) branchez votre yubikey et obtenez une liste d'ID. À la recherche de

ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT

Ils seront utilisés dans le fichier udev pour la reconnaissance du Yubikey.

Astuce: l' ID du vendeur change si vous reconfigurez la clé (par exemple avec CCID)

De plus, créez un fichier avec

sudo nano /etc/udev/rules.d/85-yubikey.rules

et tapez ce qui suit

# 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"

Modifiez l'ID en fonction de votre clé. Remarque: Vous pouvez ajouter plus de yubikey par simple copier coller la ligne avec d'autres identifiants!

Fermez et enregistrez le fichier. Enfin, le service udev doit recharger les règles:

sudo udevadm control --reload-rules
sudo service udev reload

J'ai essayé cela le 14.04 et il n'y en avait pas, ID_SERIAL_SHORTalors je l'ai juste sauté.
Paweł Prażak

Je sais que ce fil est ancien, mais c'est toujours le meilleur résultat lors de la recherche. La suppression de ID_SERIAL_SHORT est dangereuse car vous supprimez le seul identifiant unique de votre clé. En supposant bien sûr que vous souhaitiez également créer un script pour le déverrouillage. Si ID_SERIAL_SHORT n'est pas là, vous n'avez probablement pas activé les bons indicateurs avec l'outil de personnalisation.
Index

0

Vous pouvez également ajouter tuer tous les ATS en utilisant 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

Il semble également y avoir un problème avec les autorisations de fichiers de lightdm, pour le résoudre:

sudo chown lightdm:root /etc/yubico/[user]-[number]
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.