У меня есть предупреждающее сообщение, которое отображается для пользователя после того, как он вводит свое имя пользователя для входа на наши серверы Linux. Я хочу отображать это сообщение только для проверки подлинности пароля, а не при использовании ключей. Он должен показываться только пользователю, который входит в систему на хосте, а не когда они отправляются с одного хоста на другой (на всех наших хостах настроены ключи, поэтому мы можем ssh переходить от одного к другому без ввода паролей).
В настоящее время у меня есть строка для баннера в файле / etc / ssh / sshd_config, которая указывает на текстовый файл, содержащий предупреждающее сообщение. Баннер, похоже, не имеет дополнительных параметров конфигурации, поэтому мне интересно, есть ли способ сделать это с помощью pam или какого-либо другого механизма? Спасибо.
Да, вы можете использовать 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
. Заменил пароль на auth.
Я хочу отображать это сообщение только для проверки подлинности пароля, а не при использовании ключей. Он должен показываться только пользователю, который входит в систему на хосте, а не когда они отправляются с одного хоста на другой (на всех наших хостах настроены ключи, поэтому мы можем ssh переходить от одного к другому без ввода паролей).
Ты говоришь о пользователь ключи ~/.ssh/authorized_keys
или хозяин ключи /etc/ssh/ssh_known_hosts
?
В настоящее время у меня есть строка для баннера в файле / etc / ssh / sshd_config, которая указывает на текстовый файл, содержащий предупреждающее сообщение.
Banner
отображается перед любая аутентификация происходит.
Мне интересно, есть ли способ сделать это с помощью pam или какого-либо другого механизма?
Вы можете попробовать проверить удаленное (исходное) имя хоста: проверьте с помощью pam_access
если пользователь приходит из-за пределов вашей сети:
session [success=1 default=ignore] pam_access.so accessfile=/etc/pam_access_localnet.conf session optional pam_echo.so file=/etc/notice
/etc/pam_access_localnet.conf
:
+ : ALL : 192.168.201.0/24 - : ALL : ALL