Авторизация пользователя по аппаратному ключу (Debian 12)
Задача: настроить альтернативную авторизацию по ключу Yubico Security Series по протоколу U2F (DEBIAN + GNOME).
ПЕРЕД НАЧАЛОМ РЕКОМЕНДУЕТСЯ ПОТРЕНИРОВАТЬСЯ НА ВИРТУАЛЬНОЙ МАШИНЕ
Предупреждение перед началом
Некоторые приложения не умеют работать с ключами, поэтому система может запращивать пароль при первом входе в систему (после включения ПК), например:
GNOME Keyring — это система хранения паролей и ключей шифрования, которая входит в состав рабочего окружения GNOME. Она упрощает управление конфиденциальными данными (логины, пароли к сайтам и приложениям, SSH-ключи и пр.), сохраняя их в зашифрованном виде. Когда вы входите в систему под GNOME, по умолчанию ваш паролЬ на вход (или пароль к пользовательской учётной записи) автоматически используется для разблокировки «ключницы» GNOME Keyring. Таким образом, приложения могут безопасно получать сохранённые пароли или ключи шифрования из централизованного хранилища, не запрашивая у вас пароль каждый раз.
В случае с GNOME Keyring
можно установить пустой пароль введя:
sudo apt install seahorse
seahorse
В этом случае пароли будут в нешифрованном виде постоянно.
Настройка ключа
Установка зависимостей:
sudo apt update
sudo apt install libpam-u2f pamu2fcfg
где libpam-u2f
модуль PAM для аутентификации с помощью U2F/FIDO2, pamu2fcfg
утилита для регистрации ключей и генерации конфигурации.
Создание папки для хранения ключей:
mkdir -p ~/.config/Yubico
Генерация конфига:
pamu2fcfg > ~/.config/Yubico/u2f_keys
В получившемся файле cat ~/.config/Yubico/u2f_keys
должна быть запись вида:
<USER>:<KEY>
Редактирование файла pam:
sudo nano /etc/pam.d/gdm-password
Чтобы ключ работал как 2FA тогда строку auth sufficient pam_u2f.so cue
нужно поставить ПОСЛЕ @include common-auth
.
Если нужно чтобы работал ЛИБО пароль ЛЮБО ключ тогда ДО @include common-auth
.
Обратите внимание что параметр sufficient
- мягкое требование если ключа нет то и требоваться он не будет. Чтобы сделать жесткое требование тогда нужно указывать required
.