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