Вопрос или проблема
Я настроил
auth sufficient pam_u2f.so cue [cue_prompt=Нажмите на YubiKey для sudo]
в /etc/pam.d/sudo
, чтобы иметь возможность использовать sudo
, касаясь моего YubiKey. При запуске скрипта может быть легко упустить индикатор LED на ключе, поэтому я настроил cue
и cue_prompt
, чтобы выводить что-то эквивалентное [sudo] Пароль для пользователя:
при использовании пароля.
Никогда не выводится подсказка, она ведет себя так, как будто две опции не были настроены. Опции правильные согласно https://developers.yubico.com/pam-u2f/. В документации не указано, к какой версии они принадлежат – это было бы слишком просто – поэтому, возможно, есть несоответствие в том, что они больше не поддерживаются или еще не поддерживаются.
Я использую libpam-u2f
1.1.0-1.1build1 на Ubuntu 23.10.
Я обратным образом расшифровал значение документации методом проб и ошибок и пришел к следующему заключению:
- Значение
cue
остается загадкой, как и разница междуinteractive
иcue
. Исходя из описания,cue
это то, что мне нужно, однако она не показываетcue_prompt
. - Использование
interactive
иprompt
подходит почти так же близко к тому, что я хочу. Просто есть неудобство, что мне нужно нажать Enter перед тем, как я смогу прикоснуться к YubiKey.
debug debug_file=stderr
не содержит информации о том, должна ли быть вызвана подсказка или нет.
В описании nodetect
упоминается о предотвращении раскрытия стека аутентификации в выводе, который может случайно оказаться в интернете. Это хороший момент, который заставляет меня переосмыслить свою идею о показе подсказки.
Передача cue
и cue_prompt
работает для меня без необходимости вручную нажимать клавишу Enter. Обратите внимание, что я использую версию 1.3.0-1 libpam-u2f
на Ubuntu 24.04, так что, возможно, в более ранней версии была ошибка (хотя я не видел ничего подобного в заметках о релизе). Не уверен, является ли Ubuntu 23.10 жестким требованием для вас. Если да, проверьте, можете ли вы вручную установить более поздний релиз.
Ответ или решение
Для настройки уведомления о необходимости коснуться YubiKey при использовании команды sudo, вам необходимо правильно конфигурировать PAM (Pluggable Authentication Module) для поддержки YubiKey. В данном случае вы используете модуль pam_u2f.so
, который позволяет интегрировать аппаратную аутентификацию.
Шаги для настройки
-
Проверка версии и зависимостей:
Убедитесь, что у вас установлена последняя стабильная версияlibpam-u2f
. В вашем случае это версия 1.1.0, и, судя по отзывам, проблема может быть связана с несовместимостью конфигурации. Рекомендуется обновить до версии 1.3.0 или более поздней, если это возможно. Если Ubuntu 23.10 – обязательное требование, вы можете установить более свежую версию вручную, загружая ее с официального сайта Yubico. -
Редактирование конфигурации PAM:
В файле/etc/pam.d/sudo
добавьте или измените следующую строку:auth sufficient pam_u2f.so cue [cue_prompt=Tap the YubiKey to sudo]
Эта строка должна быть добавлена в разделе аутентификации, чтобы задать поведение при использовании YubiKey. Примечание: флаг
cue
отвечает за отображение подходящего сообщения, аcue_prompt
задает текст этого сообщения. -
Тестирование изменений:
После внесения изменений в конфигурацию PAM, выполните команды сsudo
и проверьте, появляется ли уведомление. Если уведомление по-прежнему не отображается, выполните следующие действия:- Убедитесь, что в системе нет других модулей PAM, которые могут конфликтовать или перезаписывать поведение
pam_u2f
. - Просмотрите системные журналы (например, с помощью
journalctl
), чтобы обнаружить возможные ошибки при аутентификации.
- Убедитесь, что в системе нет других модулей PAM, которые могут конфликтовать или перезаписывать поведение
-
Использование параметров
interactive
иprompt
:
Как вы отметили, использование параметровinteractive
иprompt
является близким к желаемому результату, но требует нажатия клавиши Enter. Это может быть связано с отсутствием поддержки функцииcue
в вашей версииlibpam-u2f
. Попробуйте использовать данный метод в качестве временного обходного пути. -
Логи и отладка:
Если проблема сохраняется, активируйте подробный лог с помощью настройки:debug debug_file=stderr
Это поможет понять, вызываются ли ваши настройки и где может происходить сбой в процессе аутентификации.
Заключение
Корректная настройка использования YubiKey для аутентификации через sudo требует внимания к деталям, таким как версия пакетов и конфигурация PAM. Обновление libpam-u2f
до последней версии может разрешить возникшие проблемы с выводом сообщений, а также улучшить стабильность всей системы аутентификации. Если проблемы продолжают возникать, имейте в виду возможность конфликта с другими модулями PAM и обязательно просматривайте системные журналы для выявления причин.