Odpowiedzi:
Najpierw musimy skonfigurować Yubikey do reagowania na wyzwania. Dobry podręcznik dla Linuksa jest podany przez Yubico pod https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html
Teraz powinieneś być w stanie użyć swojego yubikey do uwierzytelnienia przy logowaniu. Brakuje jednego wygodnego elementu: automatycznej blokady ekranu po usunięciu kostki Yubikey.
Lekko dostosowałem HowTo z forów Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ), aby pasowały do LightDM w 14.04 i Yubikey Neo.
Przede wszystkim utwórz nowy plik z poleceniami, aby zablokować ekran, gdy Yubikey nie jest obecny:
sudo nano /usr/local/bin/yubikey
Napisz do pliku:
#!/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
Największe różnice w stosunku do oryginalnego pliku to użycie narzędzia dm (do blokowania ekranu za pomocą lightdm) i wyszukiwanego terminu Yubico, ponieważ Yubikey Neo jest zarejestrowane w „Yubico.com” w lsusb.
Zamknij i zapisz plik. Ponadto musimy uczynić plik wykonywalnym:
sudo chmod +x /usr/local/bin/yubikey
Następnie musimy znaleźć właściwości Yubikey dla właściwego przypisania.
W tym celu należy aktywować deskryptor USB. Szczegóły można znaleźć na forum Yubico .
W nowym terminalu wpisz polecenie
udevadm monitor --environment --udev
Teraz (od-) podłączasz swój yubikey i dostajesz listę identyfikatorów. Szukam
ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT
Zostaną użyte w pliku udev do rozpoznania Yubikey.
Wskazówka: identyfikator dostawcy zmienia się, jeśli ponownie skonfigurujesz drążek (np. Przy pomocy CCID)
Ponadto utwórz plik za pomocą
sudo nano /etc/udev/rules.d/85-yubikey.rules
i wpisz następujące
# 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"
Zmień identyfikator zgodnie z kluczem. Uwaga: Możesz dodać więcej yubikey przez proste kopiowanie wklej linię z innymi identyfikatorami!
Zamknij i zapisz plik. Na koniec usługa udev musi ponownie załadować reguły:
sudo udevadm control --reload-rules
sudo service udev reload
Możesz także dodać zabijanie wszystkich TTY za pomocą 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
Wydaje się również, że istnieje problem z uprawnieniami do plików lightdm
, aby go rozwiązać:
sudo chown lightdm:root /etc/yubico/[user]-[number]
ID_SERIAL_SHORT
więc po prostu pominąłem.