Авторизация с помощью Flash-накопителя

Достало меня каждый раз вводить пароль на ноутбуке при включении системы или открытии крышки. Разумеется, в Ubuntu можно сделать автоматический вход в систему, но, во-первых, это небезопасно, а во-вторых, при выходе из ждущего режима это не спасает — все равно надо пароль вводить. Поскольку речь идет о ноуте, а не о домашним компе, то и пароль там серьезный.

Стал копать Инет на тему какого-нибудь способа упростить способ авторизации. И нашел. Можно сделать авторизацию на компе с помощью flash-накопителя или даже простой SD-карты (а в большинстве ноутов есть встроенный слот для таких карт).

Нужен пакет pam_usb. Устанавливаем его командой (под рутом):

# aptitude install libpam-usb pamusb-tools

Заодно должны поставиться все зависимые пакеты. Теперь вставляем flash-накопитель или SD-карту (но не монтируем) и регистрируем (myownkey — произвольное название):

# pamusb-conf --add-device myownkey
Please select the device you wish to add.
* Using "JetFlash TS2GJFV60 (XXXXXXXXXXXXXXXXXXXXXX)" (only option)

Which volume would you like to use for storing data ?
* Using "/dev/sda1 (UUID: 4871-9E7D)" (only option)

Name            : myownkey
Vendor          : JetFlash
Model           : TS2GJFV60
Serial          : XXXXXXXXXXXXXXXXXXXXXX
UUID            : 4871-9E7D

Save to /etc/pamusb.conf ?
[Y/n] y
Done.

Устройство зарегистрировано. Теперь необходимо добавить пользователей (avesnin — это имя моего рабочего пользователя).

# pamusb-conf --add-user avesnin
Which device would you like to use for authentication ?
* Using "myownkey" (only option)

User            : avesnin
Device          : myownkey
Save to /etc/pamusb.conf ?
[Y/n] y
Done.

Таким образом можно добавить любое количество пользователей. Проверим настройки:

# pamusb-check avesnin
* Authentication request for user "avesnin" (pamusb-check)
* Device "myownkey" is connected (good).
* Performing one time pad verification...
* Regenerating new pads...
* Access granted.

Далее необходимо настроить систему таким образом, чтобы она обращалась к usb-устройствам для авторизации пользователя, а при отсутствии таковых — запрашивала пароль. Необходимо внести изменения в файл common-auth, он находится в каталоге /etc/pam.d/. Добавьте перед всеми строками в этом файле такую строку:

auth    sufficient      pam_usb.so

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