Как отобразить баннер 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 -: ВСЕ: ВСЕ