Как отобразить баннер SSH при входе в систему, но только для аутентификации по паролю

У меня есть предупреждение, которое отображается пользователю после того, как он вводит свое имя пользователя для входа на наши серверы Linux. Я хочу отображать это сообщение только для аутентификации пароля, а не при использовании ключей. Он должен показываться только пользователю, который входит на хост, а не когда он переходит с одного хоста на другой (все наши хосты имеют настроенные ключи, поэтому мы можем пересылать ssh с одного на другой без ввода паролей).

В настоящее время у меня есть строка для баннера в файле /etc/ssh/sshd_config, которая указывает на текстовый файл, содержащий предупреждение. Banner, похоже, не имеет дополнительных параметров конфигурации, поэтому мне интересно, есть ли способ сделать это с помощью pam или каким-либо другим механизмом? Благодарю.

2 ответа

Решение

Да, вы можете использовать pam_echo плагин:

auth required pam_unix.so
auth optional pam_echo.so file=/etc/ssh/password_banner.txt

Это должно привести к выводу pam_echo после ввода пароля.

См. http://www.linux-pam.org/Linux-PAM-html/sag-pam_echo.html для документации.

Изменить: Вам также нужно убедиться, что у вас есть UsePAM yes в вашем sshd_config, Сменил пароль на аутентификацию.

Я хочу отображать это сообщение только для аутентификации пароля, а не при использовании ключей. Он должен показываться только пользователю, который входит на хост, а не когда он переходит с одного хоста на другой (все наши хосты имеют настроенные ключи, поэтому мы можем пересылать ssh с одного на другой без ввода паролей).

Вы говорите о пользовательских ключах ~/.ssh/authorized_keys или ключи хоста /etc/ssh/ssh_known_hosts?

В настоящее время у меня есть строка для баннера в файле / etc / ssh / sshd_config, которая указывает на текстовый файл, содержащий предупреждение.

Banner отображается перед любой аутентификацией.

Мне интересно, есть ли способ сделать это с помощью PAM или каким-то другим механизмом?

Вы можете попробовать проверить имя удаленного (исходного) хоста: проверьте с помощью pam_access если пользователь приходит из-за пределов вашей сети:

сеанс [успех =1 по умолчанию = игнорировать] pam_access.so accessfile=/etc/pam_access_localnet.conf
сеанс необязательный файл pam_echo.so =/etc/note

/etc/pam_access_localnet.conf:

+: ВСЕ: 192.168.201.0/24
-: ВСЕ: ВСЕ
Другие вопросы по тегам