如何在login时显示SSH横幅,但仅限于密码validation

我有一个警告消息,在用户input用户名login到我们的Linux服务器后显示给用户。 我只想显示这个消息的密码authentication,而不是当使用密钥。 它应该只显示给login到主机的用户,而不是当他们从一台主机到另一台主机(我们的主机都设置了密钥,所以我们可以从一个到另一个没有input密码)。

目前,我在/ etc / ssh / sshd_config文件中有一条指向包含警告消息的文本文件的Banner行。 横幅似乎没有任何进一步的configuration选项,所以我想知道是否有办法做到这一点与帕姆或其他机制? 谢谢。

是的,你可以使用pam_echo插件:

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

这应该在密码login后产生pam_echo输出。

有关文档,请参阅http://www.linux-pam.org/Linux-PAM-html/sag-pam_echo.html

编辑:您还需要确保您的sshd_configUsePAM yes 。 用authreplace密码

我只想显示这个消息的密码authentication,而不是当使用密钥。 它应该只显示给login到主机的用户,而不是当他们从一台主机到另一台主机(我们的主机都设置了密钥,所以我们可以从一个到另一个没有input密码)。

你是在谈论用户密钥~/.ssh/authorized_keys主机密钥/etc/ssh/ssh_known_hosts吗?

目前,我在/ etc / ssh / sshd_config文件中有一条指向包含警告消息的文本文件的Banner行。

任何身份validation发生之前显示Banner

我想知道是否有办法做到这一点与帕姆或其他机制?

您可以尝试检查远程(源)主机名:如果用户来自networking之外,请使用pam_access检查:

会话[成功= 1默认=忽略] pam_access.so accessfile = / etc / pam_access_localnet.conf
会话可选pam_echo.so file = / etc / notice

/etc/pam_access_localnet.conf

 +:ALL:192.168.201.0/24
 - :ALL:ALL