¿Imprimir el contenido del archivo después de una sesión de inicio de sesión iniciada por ssh?

¿Imprimir el contenido del archivo después de una sesión de inicio de sesión iniciada por ssh?

Quiero que el contenido de un archivo se imprima al iniciar sesión ssh en un sistema Unix, si ese archivo existe. MOTD ya imprime, así como un banner configurado en formato sshd_config. También quiero imprimir otro archivo. ¿Cómo podría hacer esto? Estoy intentando obtener el archivo rc pero no lo hago funcionar. ¿Puedo configurar el contenido del archivo en una variable en el entorno e imprimirlo a través de rc? ¿Cómo sugeriría?

Respuesta1

Puedes usarComando de fuerza(una opción de configuración sshd)

Fuerza la ejecución del comando especificado por ForceCommand, ignorando cualquier comando proporcionado por el cliente y ~/.ssh/rc si está presente. El comando se invoca utilizando el shell de inicio de sesión del usuario con la opción -c. Esto se aplica a la ejecución de shell, comando o subsistema. Es más útil dentro de un bloque Match. El comando proporcionado originalmente por el cliente está disponible en la variable de entorno SSH_ORIGINAL_COMMAND. Especificar un comando de ''internal-sftp'' forzará el uso de un servidor sftp en proceso que no requiere archivos de soporte cuando se usa con ChrootDirectory. El valor predeterminado es "ninguno".

Simplemente haga que apunte al script contenedor que mostrará su mensaje y luego ejecute el shell.

Ejemplo de sshd_config (OpenSSH_7.2p2):

Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes

KeyRegenerationInterval 3600
ServerKeyBits 1024

SyslogFacility AUTH
LogLevel INFO

LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes

IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no

PermitEmptyPasswords no

ChallengeResponseAuthentication no

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes

ForceCommand /usr/local/bin/ssh-wrapper

/usr/local/bin/ssh-wrapper

#!/bin/sh
[ -r "/etc/ssh_banner" ] && cat /etc/ssh_banner
CMD=${SSH_ORIGINAL_COMMAND:+-c $SSH_ORIGINAL_COMMAND} 
exec $SHELL -l $CMD

Eso mostrará un mensaje en /etc/ssh_banner, si este archivo está allí.

información relacionada