当用户输入用户名登录我们的 Linux 服务器时,系统会显示一条警告消息。我只想在密码验证时显示此消息,在使用密钥时不显示。它应该只显示给登录主机的用户,而不显示给从一台主机 ssh 到另一台主机的用户(我们的主机都设置了密钥,因此我们无需输入密码即可从一台主机 ssh 到另一台主机)。
目前,/etc/ssh/sshd_config 文件中有一行 Banner,它指向包含警告消息的文本文件。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
?
目前,/etc/ssh/sshd_config 文件中有一行 Banner,它指向一个包含警告消息的文本文件。
Banner
被展示前发生任何身份验证。
我想知道是否有办法使用 pam 或其他机制来做到这一点?
您可以尝试检查远程(源)主机名:检查pam_access
用户是否来自您的网络之外:
会话 [成功=1 默认=忽略] pam_access.so accessfile=/etc/pam_access_localnet.conf 会话可选 pam_echo.so 文件=/etc/notice
/etc/pam_access_localnet.conf
:
+ :全部:192.168.201.0/24 - :全部:全部