Quiero mostrar un banner (mensaje de bienvenida) para los usuarios de SSH con un mensaje de bienvenida específico para cada usuario.
No especificó qué servidor SSH está utilizando. Estoy asumiendo OpenSSH.
Tenga en cuenta que el banner SSH y el MOTD son dos cosas diferentes.
Aunque casi no se pueden distinguir en un terminal SSH, tienen un comportamiento diferente, por ejemplo, en un cliente SFTP.
El MOTD es solo un texto impreso en un terminal interactivo. Por lo tanto, no (y no puede) enviarse a clientes SFTP, por ejemplo (más sobre eso más adelante).
El MOTD está codificado /etc/motd
en OpenSSH. Puede activar / desactivar globalmente solo, utilizando la PrintMotd
directiva.
Sin embargo, en algunos sistemas Linux, PrintMotd
siempre está apagado y la pila PAM imprime el MOTD (usando el pam_motd
módulo). En este caso, puede desactivarlo mediante /etc/pam.d/sshd
o especificar una motd=
ruta personalizada como parámetro de módulo.
El banner SSH es una característica especial de SSH 2.0, enviada en un paquete SSH específico (SSH2_MSG_USERAUTH_BANNER).
Como tal, incluso los clientes no terminales, como los clientes SFTP, pueden procesarlo y mostrarlo al usuario. Vea cómo se muestra el banner en el cliente WinSCP SFTP / SCP, por ejemplo.
El banner SSH es configurable por usuario (o grupo u otro criterio) al sshd_config
usar Banner
las Match
directivas y :
Match User username1
Banner /etc/banner_user1
Match User username2
Banner /etc/banner_user2
Consulte también Desactivar banner ssh para usuarios específicos o ips .
Por supuesto, también puede usar una implementación personalizada para el mensaje / banner. Simplemente imprima un mensaje seleccionado usando su lógica personalizada desde un script de perfil global.
Al igual que con el MOTD, esto no funcionará para sesiones no interactivas (SFTP y similares).
Más importante aún, no solo no funcionará, sino que debe asegurarse de imprimir el mensaje solo para un terminal interactivo. Lo que OpenSSH hace automáticamente para el /etc/motd
. Utilice una secuencia de comandos de perfil global que se ejecute solo para un terminal interactivo o imprima el mensaje condicionalmente en función del valor de la TERM
variable de entorno.
Si imprime el mensaje para una sesión no interactiva, interrumpe cualquier cliente que use un protocolo estricto, como el SFTP o el SCP, ya que el cliente intentará interpretar su mensaje de texto como un mensaje de protocolo, fallando gravemente.
Consulte, por ejemplo, la descripción de dicho problema en la documentación del cliente WinSCP SFTP / SCP .
(Soy el autor de WinSCP)
groups|awk '{print $1}'
cat /etc/motd.${PGROUP} antes de agregar esta línea, creo un archivo de banner para cada usuario en el directorio / etc. y archivar como motd.root y motd.alex y esto funciona para mí.También puede usar el
"$HOME/.ssh/rc"
archivo para archivar lo que desea hacerPor lo tanto, puede tener un ssh rc para cada usuario.
fuente