Использование Yubikey Neo для входа в систему 2FA и блокировки экрана

Я хочу использовать свой Yubikey Neo для входа в Ubuntu 14.04. Кроме того, было бы удобно, если бы экран блокировался автоматически каждый раз, когда я отключаю Yubikey.

13
задан 11 June 2015 в 21:34

2 ответа

Во-первых, мы должны настроить Yubikey для ответа проблемы. Хорошее руководство для Linux дано Yubico в соответствии с https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html

Теперь необходимо смочь использовать yubikey для аутентификации при входе в систему. Одна удобная часть отсутствует: автоматическая блокировка экрана, когда умирают Yubikey, удалена.

Я адаптировал немного HowTo от форумов Yubico (http://forum.yubico.com/viewtopic.php?f=23&t=1143) для соответствия LightDM в 14,04 и Yubikey Нео.

В первую очередь, создайте новый файл с командами для блокировки экрана, когда Yubikey не будет присутствовать:

sudo nano /usr/local/bin/yubikey

Запишите следующее в файл:

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

Самыми большими различиями в исходный файл является использование dm-инструмента (для блокировки экрана с lightdm) и критерий поиска Yubico, так как Yubikey Нео регистрируется в „Yubico.com “в lsusb.

Закройте и сохраните файл. Кроме того, мы должны сделать исполняемый файл файла:

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

Затем, мы должны найти свойства Yubikey для надлежащего присвоения.

Для этого должен быть активирован дескриптор USB. Детали могут быть найдены на форуме Yubico.

В новом терминальном типе в команде

udevadm monitor --environment --udev

Теперь Вы (не-) включаете свой yubikey и получаете список Ids. Поиск

ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT

Они будут использоваться в udev файле для распознавания Yubikey.

Подсказка: идентификатор поставщика изменяется при реконфигурировании палки (например, с CCID)

Кроме того, создайте файл с

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

и введите следующее

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

Измените идентификатор согласно своему ключу.Примечание: Можно добавить, что больше yubikey простой копией вставляет строку с другим Ids!

Закройте и сохраните файл. Наконец, udev сервис должен перезагрузить правила:

sudo udevadm control --reload-rules
sudo service udev reload
11
ответ дан 11 June 2015 в 21:34

Можно также добавить уничтожение использования всего TTY 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

Также, кажется, существует проблема с полномочиями файла от lightdm, решает его:

sudo chown lightdm:root /etc/yubico/[user]-[number]
0
ответ дан 12 June 2015 в 07:34

Другие вопросы по тегам:

Похожие вопросы: