Cómo mostrar un banner SSH al iniciar sesión, pero solo para autenticación de contraseña

Cómo mostrar un banner SSH al iniciar sesión, pero solo para autenticación de contraseña

Tengo un mensaje de advertencia que se muestra a un usuario después de que ingresa su nombre de usuario para iniciar sesión en nuestros servidores Linux. Solo quiero mostrar este mensaje para las autenticaciones de contraseña, y no cuando se utilizan claves. Solo debería mostrarse a un usuario que está iniciando sesión en un host, y no cuando está realizando ssh de un host a otro (todos nuestros hosts tienen claves configuradas para que podamos realizar ssh de uno a otro sin ingresar contraseñas).

Actualmente, tengo una línea para Banner en el archivo /etc/ssh/sshd_config que apunta a un archivo de texto que contiene el mensaje de advertencia. Banner no parece tener más opciones de configuración, así que me pregunto si hay alguna manera de hacer esto con pam o algún otro mecanismo. Gracias.

Respuesta1

Sí, puedes usar el pam_echocomplemento:

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

Esto debería producir la salida pam_echo después de iniciar sesión con contraseña.

Verhttp://www.linux-pam.org/Linux-PAM-html/sag-pam_echo.htmlpara doctores.

Editar: También deberás asegurarte de tener UsePAM yesen tu archivo sshd_config. Contraseña reemplazada con autenticación.

Respuesta2

Solo quiero mostrar este mensaje para las autenticaciones de contraseña, y no cuando se utilizan claves. Solo debería mostrarse a un usuario que está iniciando sesión en un host, y no cuando está realizando ssh de un host a otro (todos nuestros hosts tienen claves configuradas para que podamos realizar ssh de uno a otro sin ingresar contraseñas).

Estás hablando deusuariollaves ~/.ssh/authorized_keysoanfitriónllaves /etc/ssh/ssh_known_hosts?

Actualmente, tengo una línea para Banner en el archivo /etc/ssh/sshd_config que apunta a un archivo de texto que contiene el mensaje de advertencia.

Bannerse visualizaantesocurre cualquier autenticación.

Me pregunto si hay alguna manera de hacer esto con pam o algún otro mecanismo.

Puede intentar verificar el nombre de host remoto (fuente): verifique pam_accesssi el usuario proviene de fuera de su red:

sesión [éxito=1 predeterminado=ignorar] pam_access.so accessfile=/etc/pam_access_localnet.conf
sesión opcional pam_echo.so file=/etc/notice

/etc/pam_access_localnet.conf:

+ : TODOS : 192.168.201.0/24
- : TODO TODO

información relacionada