Авторизация в системе с помощью USB устройства

Давно хотелось сделать авторизацию в системе с помощью чего-то внешнего.
Пароль у меня длинный и вводить его каждый раз довольно лениво. А пользоваться коротким - не хочется.
Теперь все просто.

Оказалось, что можно стелать авторизацию по usb-устройству. Для этого необходимо установить 2 пакета:
#aptitude install libpam-usb pamusb-tools

После установки нужно подключить выбранное нами устройство к компьютеру и добавить его в систему с помощью pamusb-conf
#pamusb-conf --add-device usbkey

В данном случае usbkey это просто название нашей флешки и заменить его можно на что угодно. Например, на my-token.
Сейчас добавим пользователей.
#pamusb-conf --add-user user
Где user - имя нашего пользователя, к которому мы прикрепляем флешку.
Проверим правильность настройки:
#pamusb-check root

Включаем саму авторизацию. Для этого в файл /etc/pam.d/common-auth добавляем первой строкой:
auth sufficient pam_usb.so
Теперь авторизация работает, например для sudo.
Так же можно логиниться и на саму машину.
Говорят, что в KDE3 с этим проблемы и нужно дополнительно внести запись об usb-аутентификации в файл /etc/pam.d/kde3
Не знаю. В KDE4 все завелось и так.

Для пущей защищенности сделаем так, что бы при вытаскивании флешки система лочилась.
Для этого открываем файл /etc/pamusb.conf находим там
<user id="user">
<device>
usbkey
</device>
</user>
И перед </user> добавляем строку:
<agent event="lock">qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock</agent>
Теперь система будет лочиться при выдергивании флешки.
И, естественно, будет разлочиваться без пароля, если флешку воткнуть назад.
Только прошу обратить внимание, что эта строка будет работать ТОЛЬКО в KDE4.
Для гнома и KDE3 строка будет совсем другой.