У меня YubiKey, openSUSE, SDDM, DMS Quickshell, я покажу на этом примере.
Установка pam_u2f:
sudo zypper install pam_u2f
Как работает файл с ключами
Все ключи хранятся в одном общем файле /etc/Yubico/u2f_keys. В формате одна строка на пользователя, а все ключи этого пользователя идут в той же строке через двоеточие (упрощенно):
| |
Регистрация не привязана к имени юзера, а указывается юзеру, поэтому отдельно регистрировать ключ для root не нужно.
А так же в ~/.config/Yubico/u2f_keys – только строка юзера. Его использует например DMS, KDE и тд., то что работает от вашего пользователя, а не от root.
То есть:
/etc/Yubico/u2f_keys–sudo,su,su-l, в общем система.~/.config/Yubico/u2f_keys– кастомные юзерские сервисы, лок скрины, и тп.
Добавляем ключи
Создаем скрипт и даем права на выполнение
| |
Запускаем от обычного пользователя (без sudo):
u2f-add-key
и касаемся ключа.
Если нужны доп. ключи, то втыкаете следующий и снова запускаете скрипт.
Проверяем:
sudo cat /etc/Yubico/u2f_keys && echo && cat ~/.config/Yubico/u2f_keys
Должно быть две строки (ваш юзер и root), а так же один ключ вашего юзера. Выходим из системы и заходим снова (необязательно, но желательно).
Если нужно убрать ключ, откройте файлы /etc/Yubico/u2f_keys/~/.config/Yubico/u2f_keys и удалите его фрагмент между двоеточиями в строке/обеих строках.
Чтобы убрать все ключи, просто удалите файлы:
sudo rm -rf /etc/Yubico/u2f_keys ~/.config/Yubico/u2f_keys
Далее настройка сервисов.
sudo cp /usr/lib/pam.d/su /etc/pam.d/su
sudo nano /etc/pam.d/su
Добавить:
| |
Выше common-auth, но ниже самого первого auth (если есть). Пара примеров:
| |
Нужно, чтобы аппаратный ключ был sufficient и стоял выше common-auth. Иначе оно будет требовать пароль + ключ.
common-auth и иметь required. Но в таком случае лучше иметь пару ключей, и оба их нужно добавить в систему, иначе если потеряете/сломаете, то все…Проверить:
su
Если ключ подключен, то попросит коснуться ключа (подойдет любой из добавленных). Если же нет, то попросит ввести пароль: или-или.
Повторяете то же самое для:
su-lsudosddm(ваш Display Manager)
В случае чего вернуть назад можно, просто удалив файлы, что были скопированы:
sudo sh -c 'cd /etc/pam.d && rm su su-l sudo sddm && ls'
Так же после обновления ОС оригинальные файлы могут поменяться (обычно очень не часто). Проверить:
| |
После входа в систему по ключу вас может ожидать неприятность на некотором софте:
Authentication required
- The login keyring did not get unlocked when you logged into your computer
Два самых безопасных решения с точки зрения буквально безопасности:
- Вводить пароль, это все равно один раз после входа в систему
- Отключить аппаратный ключ для DM и вводить пароль как обычно, это все равно один раз на вход в систему
На sudo это никак не повлияет.
Другой вариант, это отключение шифрования keyring, не делайте так.
DMS
В настройках Lock Screen включаем Enable security key authentication, откроется терминал с выбором аутентификации, выберите что-то, я предпочитаю sudo и ввести пароль (он же ключ если уже настроили). Подробнее здесь и тут.
