Включите одноразовый пароль в Ubuntu 24.04 для SSH или локального входа
В этом руководстве показано, как включить одноразовый пароль в Ubuntu 24.04 для локального или удаленного входа по SSH.
Одноразовый пароль, сокращенно OTPW, представляет собой модуль PAM, который позволяет пользователю войти в систему на общедоступном или совместно используемом компьютере/сервере с использованием одноразового пароля, который работает только один раз.
Создав список паролей OTPW и настроив вашу систему на разрешение входа в систему OTPW, она будет запрашивать случайный один из паролей OTPW при каждом входе в систему. И этот пароль никогда больше не будет работать после успешного входа в систему с ним.
Шаг 1. Установите пакет OTPW.
Пакет OTPW доступен в репозитории Universe для всех текущих выпусков Ubuntu.
Чтобы установить, откройте терминал (Ctrl+Alt+T) или подключитесь, чтобы удалить сервер, и выполните команду:
sudo apt install libpam-otpw otpw-bin
Здесь пакет libpam-otpw
включает модуль PAM, который может включить вход в систему с паролем OTPW. В то время как otpw-bin
предлагает команду для генерации паролей OTPW.
Шаг 2. Создайте список паролей OTPW.
После установки вышеуказанных пакетов вы можете запустить команду ниже, чтобы сгенерировать случайные пароли:
otpw-gen > ~/otpw_passwords
Команда создаст файл с именем «otpw_passwords
» в домашнем каталоге пользователя, который содержит 280 случайно сгенерированных паролей.
И вам будет предложено установить префиксный пароль. При входе в систему с помощью модуля OTPW вам необходимо ввести этот пароль-префикс + пароль OTPW. Таким образом, другие не смогут получить доступ к вашей учетной записи, даже если вы потеряли список паролей.
В любой момент вы можете повторно запустить последнюю команду, чтобы заново создать список паролей. Который переопределит как предыдущий префикс, так и одноразовые пароли.
Пароли работают только для учетной записи пользователя, который их сгенерировал. Для любого другого пользователя либо запустите команду su username
, чтобы переключиться на этого пользователя, и повторно запустите otpw. -gen
или используйте вместо этого команду ниже:
su -c "otpw-gen > ~/otpw_passwords" username
В команде замените username
именем целевой учетной записи.
Вот пример списка паролей. Для себя сделайте снимок на телефон или распечатайте его для дальнейшего использования.
Шаг 3. Сообщите вашей системе, что она разрешает вход по паролю OTPW.
1. Сначала выполните приведенную ниже команду, чтобы создать файл конфигурации PAM, и отредактируйте его с помощью текстового редактора командной строки nano:
sudo nano /etc/pam.d/ssh-otpw
Когда он откроется, пропустите строки ниже, в которых говорится о необходимости аутентификации с помощью модуля otpw и немедленном разрешении доступа в случае успеха.
auth sufficient pam_otpw.so
session optional pam_otpw.so
Наконец, нажмите Ctrl+S для сохранения и Ctrl+X для выхода.
Включить OTPW для входа по SSH
2. Чтобы включить модуль OTPW PAM для SSH, отредактируйте файл конфигурации PAM sshd
с помощью команды:
sudo nano /etc/pam.d/sshd
Когда файл откроется, включите только что созданную конфигурацию, добавив @include ssh-otpw. ОБРАТИТЕ ВНИМАНИЕ, что вам необходимо:
- либо отключите @include common-auth (добавьте # в начале), чтобы классический вход со статическим паролем больше не работал (для всех пользователей)! Убедитесь, что у вас есть альтернативный метод аутентификации на случай, если у вас закончатся пароли OTPW.
- или убедитесь, что @include common-auth ниже @include ssh-otpw, иначе сначала будет запрошен статический пароль!
3. После этого также отредактируйте файл конфигурации демона SSH, выполнив команду:
sudo nano /etc/ssh/sshd_config
Когда файл откроется, найдите строки ниже и установите (или добавьте строки, если они НЕ существуют) для использования аутентификации PAM:
ИспользоватьPAM да
KbdInteractiveAuthentication да
Также установите PasswordAuthentication no
, хотя статический пароль все равно будет работать, если только @include common-auth
не отключен в конфигурации PAM или KbdInteractiveAuthentication
также отключен. в этой конфигурации sshd.
4. Завершив редактирование файла, нажмите Ctrl+S для сохранения и Ctrl+X для выхода. Наконец, перезапустите SSH, чтобы применить изменения:
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
Для старой Ubuntu 22.04 и более ранних версий должен работать только запуск sudo systemctl restart ssh
.
5. Далее вы можете попытаться установить SSH-соединение с этим компьютером или сервером.
Он должен запросить пароль из 3 цифр. На снимке экрана он запросил пароль 004. Я установил префиксный пароль на «ade564», а файл паролей показывает мне 004 Zh63 7Qyi. Итак, мне нужно ввести ade564Zh637Qyi, чтобы получить пропуск.
ПРИМЕЧАНИЕ 1. Если вы оставили @include common-auth
включенным в файле конфигурации /etc/pam.d/sshd
, введите статический пароль пользователя. тебя тоже впусти!
ПРИМЕЧАНИЕ 2. Если кто-то другой попытается войти в систему одновременно с вами, он МОЖЕТ запросить 3 пароля вместо одного. Запрос может выглядеть так: «Пароль 004/027/134». В этом случае вам нужно ввести префикс + 3 пароля по порядку. После входа в систему необходимо удалить ~/.otpw.lock
, иначе он всегда будет запрашивать 3 пароля.
(необязательно) Включите одноразовый пароль для входа на локальный рабочий стол.
Если вы хотите использовать одноразовый пароль для входа в Ubuntu Desktop, отредактируйте файл конфигурации PAM common-auth
, выполнив команду:
sudo nano /etc/pam.d/common-auth
Когда файл откроется, добавьте @include ssh-otpw вверху и сохраните.
В следующий раз на экране входа в систему, когда вы щелкните пользователя, создавшего список паролей OTPW, вы увидите «Пароль XXX» с запросом соответствующего пароля OTPW (не забудьте добавить префикс пароля при вводе).
Кроме того, ввод статического пароля пользователя также позволит вам войти!
Отменить :
Чтобы отключить одноразовый пароль, просто удалите строку @include ssh-otpw из /etc/pam.d/sshd
или /etc/pam.d/ common-auth
зависит от того, какой из них вы включили.
При желании вы можете удалить пакет модулей, чтобы сэкономить немного места на диске:
sudo apt remove --autormove libpam-otpw