Гид по технологиям

Вход в Linux с помощью Google Authenticator

• 8 min read • Безопасность • Обновлено 23 Nov 2025
Вход в Linux с Google Authenticator
Вход в Linux с Google Authenticator

Вход в рабочий стол Linux с Google Authenticator

Быстрые ссылки

  • Установить PAM для Google Authenticator
  • Создать ключи аутентификации для каждого пользователя
  • Активировать двухфакторную аутентификацию
  • Включить Google Authenticator для графического входа в Ubuntu
  • Если используется шифрование домашней папки
  • Помощь, если вход перестал работать

Почему это полезно

Двухфакторная аутентификация повышает безопасность: помимо пароля система требует одноразовый код, генерируемый на вашем смартфоне. Решение основано на стандартном протоколе TOTP, поэтому работает не только с официальным приложением Google Authenticator, но и с Authy, FreeOTP и другими совместимыми клиентами. Оно не зависит от постоянного подключения к Интернету: коды генерируются локально.

Важно: описанные примеры выполнены на Ubuntu 14.04 с Unity и LightDM, но общие принципы применимы к большинству дистрибутивов и менеджеров сеанса, использующих PAM.

Краткое определение

TOTP — алгоритм генерации одноразовых временных паролей. PAM — модульная система аутентификации в Linux, позволяющая добавлять разные способы входа.

1. Установить Google Authenticator PAM

В большинстве дистрибутивов пакет называется libpam-google-authenticator или аналогично. На Ubuntu команда для установки выглядит так. Откройте терминал, выполните и введите пароль пользователя:

sudo apt-get install libpam-google-authenticator

Скриншот установки PAM-модуля Google Authenticator

Если пакет недоступен в репозиториях, проверьте исходники на GitHub и при необходимости соберите модуль вручную. В большинстве случаев репозиторий вашей системы уже содержит этот пакет.

Примечание: модуль реализует стандарт TOTP и не “звонит домой” к Google: секреты генерируются и хранятся локально.

2. Создать ключи аутентификации для каждого пользователя

Для каждого аккаунта, которому вы хотите включить двухфакторную аутентификацию, выполните команду google-authenticator в контексте этого пользователя. Например, войдите под нужным пользователем, откройте терминал и выполните:

google-authenticator

Интерактивный мастер предложит сгенерировать секрет, QR-код и набор запасных (emergency) кодов. Рекомендуемые действия:

  • Сканируйте QR-код приложением на телефоне или введите секрет вручную.
  • Запишите и сохраните emergency-коды в безопасном месте (бумажно или в менеджере паролей). Они помогут, если вы потеряете телефон.
  • По умолчанию мастер добавляет запись в домашний каталог пользователя (обычно ~/.google_authenticator).

Генерация секретного ключа и QR-кода для TOTP

Повторите этот шаг для каждого локального пользователя, который будет входить в систему.

Сохранение резервных кодов Google Authenticator

Совет: если у вас несколько устройств или вы хотите иметь резервную копию, безопасно скопируйте секрет в офлайн-менеджер паролей или распечатайте QR-код. Не храните секрет в открытом виде в общедоступных местах.

3. Активировать двухфакторную аутентификацию в PAM

Перед внесением изменений убедитесь, что у вас есть способ откатиться: вы сможете переключиться на виртуальную консоль (Ctrl+Alt+F2) и отредактировать конфигурацию PAM, если что-то пойдёт не так.

Поскольку мы хотим включить второй фактор только для графического входа, будем редактировать файл PAM для дисплейного менеджера (например, LightDM в Ubuntu). Это даёт “аварийный выход” — при проблемах можно войти через виртуальную консоль и отменить изменения.

LightDM (Ubuntu)

Откройте файл /etc/pam.d/lightdm в текстовом редакторе с правами root:

sudo gedit /etc/pam.d/lightdm

Редактирование PAM-файла LightDM

Добавьте в конец файла строку:

auth required pam_google_authenticator.so nullok

Описание параметров:

  • auth required pam_google_authenticator.so — требовать модуль при аутентификации.
  • nullok — разрешать вход пользователю, который ещё не выполнил google-authenticator (т.е. не настроил TOTP). Если удалить nullok, пользователи без файла ~/.google_authenticator не смогут войти графически.

Добавление строки для активации Google Authenticator в PAM

Перезагрузите систему или выйдите и попробуйте графический вход: после ввода пароля система запросит код из приложения TOTP.

Запрос одноразового кода при графическом входе

Другие дисплейные менеджеры

Если вы используете GDM, SDDM, LightDM-подобные другие менеджеры или просто вход в консоли, нужно редактировать соответствующий PAM-файл, например /etc/pam.d/gdm-password или /etc/pam.d/login. Общая строка для вставки останется похожей, но место вставки может отличаться.

Важно: не добавляйте модуль в системные PAM-конфигурации, не понимая последствий. Ошибка в /etc/pam.d/common-auth или других критических файлах может заблокировать доступ в систему.

4. Если вы используете шифрование домашней папки

Старые версии Ubuntu использовали ecryptfs для шифрования домашней папки, когда каталог пользователя остается зашифрованным до ввода пароля. В этом случае файл ~/.google_authenticator недоступен модулю PAM до расшифровки домашней папки, и вход не сможет пройти проверку второго фактора.

Рекомендации:

  • Предпочтительнее использовать полное шифрование диска (LUKS) — оно работает совместно с описанным решением.
  • Если вы всё ещё используете ecryptfs, изучите README модуля и документацию ecryptfs для способов размещения конфигурации PAM в незашифрованном месте (например, в /etc или в отдельном незашифрованном каталоге). Это требует аккуратной настройки и понимания рисков хранения секретов в незашифрованной области.

5. Помощь, если что-то сломалось

Если после редактирования вы не можете войти графически, используйте виртуальную консоль (Ctrl+Alt+F2) и войдите по имени пользователя и паролю. Затем откройте и отредактируйте файл PAM, например:

sudo nano /etc/pam.d/lightdm

Удалите добавленную строку или восстановите резервную копию и сохраните файл. Затем вернитесь в графическую среду (Ctrl+Alt+F7 или Ctrl+Alt+F1 в зависимости от дистрибутива) и попробуйте войти снова.

Виртуальная консоль и редактор Nano

Если вы не можете войти в консоль, загрузитесь в режим восстановления (recovery) или используйте live-USB для монтирования корневой файловой системы и редактирования PAM-файлов.


Ниже приведены дополнительные рекомендации, сценарии и чек-листы по расширенному использованию и отладке.

Когда это решение не подходит

  • Когда все пользователи пользуются зашифрованными домашними папками, и вы не хотите перестраивать хранение секретов.
  • В средах, где доступ к устройствам генерирующим TOTP строго контролируется организационными политиками и требуется централизованное управление ключами.
  • Если на компьютере нет возможности установить PAM-модуль (специфические или сильно урезанные системы).

В этих случаях рассмотрите альтернативы (см. раздел «Альтернативные подходы»).

Альтернативные подходы

  • Аппаратные ключи (U2F/FIDO2). Сильнее защищают от фишинга и могут быть интегрированы с PAM-плагинами для FIDO.
  • Централизованные решения 2FA (например, RADIUS/LDAP с поддержкой TOTP). Удобно для корпоративной среды, где нужно управлять пользователями централизованно.
  • Использование SSH-ключей вместо паролей для удалённого доступа с обязательной двухфакторной проверкой при подключении к удалённым хостам.

Мини-методология: пошаговый план внедрения в организации

  1. Оцените текущую PAM-конфигурацию и наличие шифрования домашних каталогов.
  2. Тестируйте установку на одной тестовой машине и одном тестовом аккаунте.
  3. Документируйте процесс восстановления доступа (виртуальная консоль, recovery, live-USB).
  4. Обучите пользователей генерации QR и хранению emergency-кодов.
  5. Разверните по группам, начиная с невысокого приоритета пользователей.
  6. Внедрите мониторинг и обратную связь, поправьте сценарии входа.

Роль‑ориентированные чек-листы

Администратор:

  • Проверить наличие пакета libpam-google-authenticator в репозитории.
  • Сделать резервные копии /etc/pam.d/*.
  • Настроить и протестировать на тестовом аккаунте.

Пользователь:

  • Запустить google-authenticator и сканировать QR.
  • Сохранить emergency-коды в защищённом месте.
  • Проверить вход в систему и корректность кода из приложения.

Офис поддержки:

  • Иметь инструкции по входу в виртуальную консоль и откату PAM.
  • Процедура верификации личности для выдачи emergency-кодов или восстановления доступа.

Инцидентный плейбук: восстановление доступа

  1. Пользователь сообщает, что потерял устройство TOTP.
  2. Поддержка верифицирует личность по внутренней процедуре.
  3. Если пользователь имеет emergency-код — подсказать, как войти и сбросить TOTP (удалить ~/.google_authenticator и запустить google-authenticator заново).
  4. Если нет emergency-кодов, администратор временно удаляет строку pam_google_authenticator из PAM для соответствующего менеджера сеанса, чтобы позволить доступ, затем помогает пользователю настроить новый TOTP.
  5. После восстановления восстановить строку проверки в PAM и зафиксировать изменения в журнале.

Критерии приёмки

  • При входе графически пользователь с настроенным TOTP запрашивается пароль, затем текущий код TOTP.
  • Пользователь без настроенного TOTP (при включённом nullok) может войти только с паролем.
  • Виртуальная консоль позволяет откатить изменения при проблемах.

Безопасность и жёсткая настройка

Рекомендации для повышения безопасности при использовании TOTP:

  • Уберите nullok, когда все пользователи настроили TOTP.
  • Ограничьте права доступа к файлу ~/.google_authenticator (должен быть читаем только владельцем).
  • Храните emergency-коды в зашифрованном менеджере паролей или в физическом сейфе.
  • Рассмотрите добавление блокировок по числу попыток (pam_tally2/pam_faillock) для предотвращения перебора кодов и паролей.
  • Для корпоративных сред используйте централизованные решения управления ключами.

Совместимость и миграция

  • На системах, где PAM-пакет называется иначе, найдите соответствующий пакет в репозиториях.
  • Для GDM используйте /etc/pam.d/gdm-password; для SDDM — /etc/pam.d/sddm; для login консоли — /etc/pam.d/login.
  • Всегда тестируйте на отдельной учётной записи перед массовым развёртыванием.

Примеры команд и конфигураций

Установка на Debian/Ubuntu:

sudo apt-get update sudo apt-get install libpam-google-authenticator

Запуск мастера (выполнить под пользователем):

google-authenticator

Добавление в LightDM (как root):

sudo nano /etc/pam.d/lightdm

Вставить в конец:

auth required pam_google_authenticator.so nullok

Частые ошибки и как их исправить

Проблема: после добавления модуля никто не может войти графически. Решение: переключитесь на виртуальную консоль (Ctrl+Alt+F2), удалите добавленную строку в /etc/pam.d/* и перезагрузите менеджер сеанса.

Проблема: PAM не может найти ~/.google_authenticator из-за шифрования домашней папки. Решение: переместите конфигурацию в незашифрованное место и настройте соответствующие права доступа, либо используйте полное шифрование диска.

Проблема: часы на телефоне и сервере рассинхронизированы, коды не принимаются. Решение: синхронизируйте время на сервере (например, systemd-timesyncd или ntp) и проверьте время на смартфоне. TOTP чувствителен к времени.

1‑строчное глоссарное пояснение

  • TOTP: временной одноразовый пароль, зависящий от секретного ключа и времени.
  • PAM: модульная система аутентификации в Unix/Linux.

Заключение

Включение Google Authenticator через PAM повышает безопасность локального и удалённого доступа. Для безопасного внедрения: тестируйте на отдельных аккаунтах, обеспечьте путь отката и обучите пользователей сохранению emergency-кодов. Для корпоративных сред рассмотрите централизованные и аппаратные решения, если требуется масштабируемое управление.

Полезные ссылки

  • Репозиторий libpam-google-authenticator на GitHub (поискать по названию пакета для вашей системы)
  • Документация PAM и README модуля для подробных опций
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро