Je souhaite utiliser mon Yubikey Neo pour me connecter à Ubuntu 14.04. En outre, il serait pratique que l'écran soit automatiquement verrouillé à chaque fois que je débranche le Yubikey.
Premièrement, 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 un élément pratique: le verrouillage automatique de l'écran lorsque le Yubikey est retiré.
J'ai légèrement adapté le HowTo des forums Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=114 ) pour correspondre à LightDM en 14.04 et à Yubikey Neo.
Tout d’abord, créez un nouveau fichier avec les commandes permettant de 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
La plus grande différence par rapport au fichier d'origine réside dans l'utilisation de l'outil dm (pour verrouiller l'écran avec lightdm) et du terme de recherche Yubico, car Yubikey Neo est enregistré auprès de "Yubico.com" à 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 terminal, tapez dans la commande
udevadm monitor --environment --udev
Maintenant, vous (débranchez) votre yubikey et obtenez une liste d'identifiants. À 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.
Indice: L'identifiant 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 de 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
Vous pouvez également ajouter la suppression de tous les TTY 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 fichier de lightdm
, pour le résoudre:
Sudo chown lightdm:root /etc/yubico/[user]-[number]