Comment afficher la bannière SSH lors de la connection, mais uniquement pour l'authentification par mot de passe

J'ai un message d'avertissement qui est affiché à un user après leur input dans leur nom d'user pour se connecter à nos servers Linux. Je veux seulement afficher ce message pour authentifications mot de passe, et non lorsque les touches sont utilisées. Il ne doit apparaître que pour un user qui se connecte à un hôte, et non lorsqu'il est en train de passer d'un hôte à l'autre (nos hôtes ont tous les keys configurés afin que nous puissions ssh de l'un à l'autre sans entrer de passwords).

Actuellement, j'ai une ligne pour Banner dans le file / etc / ssh / sshd_config qui indique un file text contenant le message d'avertissement. Banner ne semble pas avoir d'autres options de configuration, alors je me request s'il existe un moyen de le faire avec pam ou un autre mécanisme? Merci.

Oui, vous pouvez utiliser le plugin pam_echo :

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

Cela devrait produire la sortie pam_echo après la connection au mot de passe.

Voir http://www.linux-pam.org/Linux-PAM-html/sag-pam_echo.html pour les documents.

Edit: Vous devrez également vous assurer que vous UsePAM yes dans votre sshd_config . Remplacer le mot de passe par auth.

Je souhaite seulement afficher ce message pour les authentifications de mot de passe, et non lorsque les keys sont utilisées. Il ne doit apparaître que pour un user qui se connecte à un hôte, et non lorsqu'il est en train de passer d'un hôte à l'autre (nos hôtes ont tous les keys configurés afin que nous puissions ssh de l'un à l'autre sans entrer de passwords).

Parlez-vous des touches d' user ~/.ssh/authorized_keys ou des keys d' hôte /etc/ssh/ssh_known_hosts ?

Actuellement, j'ai une ligne pour Banner dans le file / etc / ssh / sshd_config qui indique un file text contenant le message d'avertissement.

Banner est affichée avant toute authentification.

Je me request s'il existe un moyen de le faire avec pam ou un autre mécanisme?

Vous pouvez essayer de vérifier le nom d'hôte distant (source): vérifier avec pam_access si l'user provient de votre réseau:

 session [success = 1 default = ignore] pam_access.so accessfile = / etc / pam_access_localnet.conf
 session optionnelle pam_echo.so file = / etc / notice

/etc/pam_access_localnet.conf :

 +: ALL: 192.168.201.0/24
 - : TOUT TOUT