¿Cómo edito el mensaje SSH de "último inicio de sesión"?


16

Me gustaría editar la Last login:información que se imprime junto con el mensaje del día, pero no puedo encontrar el script que genera y hace eco.

¿Dónde se define, en un script de shell fácil de editar, o se cierra en un binario?


Tenga en cuenta que esto es diferente de ServerFault: ¿Cómo puedo editar el mensaje de bienvenida cuando se inicia ssh? . La información del "último inicio de sesión" no se imprime desde adentro /etc/update-motd.d/, sino que se define configurando el PrintLastLogindicador y, por lo tanto, no se puede editar como las otras partes del mensaje del día.


Esta información se guarda en utmpy wtmparchivos (dependiendo de la distribución, el registro /var/run/utmpo /var/log/utmpo busque en /varel directorio). Estos archivos no se guardan como texto, sino como binarios, por lo que necesitará herramientas especiales para editarlos. El archivo utmp realiza un seguimiento del estado actual de inicio de sesión de cada usuario. El archivo wtmp registra todos los inicios de sesión y el historial de desconexiones. Necesitará herramientas especiales para editarlos, pero no pude encontrar nada realmente.
phoops

Respuestas:


14

Parece que el formato de la línea impresa se compila en sshd:

[me@risby ~]$ ssh lory
Last login: Fri May 23 10:59:01 2014 from 2a01:2c0:e:300:7271:bcff:feac:445a
[me@lory ~]$ strings /usr/sbin/sshd | grep -i "last login"
Last login: %s
Last login: %s from %s

Tampoco puedo ver ninguna opción de configuración para cambiar eso, por lo que deberá editar la fuente y volver a compilar.

Editar : en el caso límite, puede encontrar la fuente en http://www.openssh.org . Pero no nos dice que está utilizando OpenSSH, ni nada sobre su plataforma, por lo que es difícil ser más específico. Si se trata de un sistema Linux, sería mucho mejor obtener la fuente adecuada para su distribución de la forma habitual y volver a compilar a través de sus mecanismos específicos de distribución.

Pero en realidad, no debería hacer esto a menos que tenga una razón comercial extremadamente convincente para hacerlo: está haciendo una pesadilla de mantenimiento para usted, yendo a una versión compilada a mano de un paquete sensible a la seguridad.


¿Dónde se puede encontrar el código fuente detrás sshd?
IQAndreas

1
En realidad, estaba planeando algo más con la fuente. Quería ver cómo analizan los datos wtmp, configuran el PrintLastLogindicador noy vuelven a crear el aviso de "último inicio de sesión" con mi propio script colocado update-motd.d. Mucho más fácil de mantener. :)
IQAndreas

1
Con frecuencia veo que la motdsalida no está completamente actualizada. Así que estoy pensando que update-motdpodría no ejecutarse en cada inicio de sesión.
Kasperd

@kasperd Se actualiza cada 10 minutos como un trabajo cron. Esto es útil en caso de que intente hacer algo "lento" como recuperar una cadena de Internet, por lo que no hace que el servidor se ralentice cada vez que alguien inicia sesión.
IQAndreas

3
El mensaje de "último inicio de sesión" es específico del usuario, mientras que el motd es para todo el sistema. No estoy seguro de cómo quieres recrear el mensaje. Además, hay personas que realmente leen este mensaje y quieren que sea lo más preciso posible.
Simon Richter

5

La última información de inicio de sesión se almacena /var/log/wtmpo /var/log/utmpson archivos binarios. Sin mirar el código fuente de sshd, no puedo estar completamente seguro, pero esperaría que esté recuperando la información de esos archivos mediante llamadas al sistema adecuadas

Parece poco probable que encuentre una manera de cambiar fácilmente esta información, ya que es parte de la seguridad de los usuarios.


Si realmente quieres los detalles sangrientos, entonces debes mirar el código fuente de la función login_get_lastlogque puedes encontrar enloginrec.c


@lain +1 debido a la sugerencia del código fuente, aunque no creo que fuera una solución sangrienta, todo lo que necesita es un espejo git local. Imho usando la fuente no es del diablo, incluso para los sysadms.
peterh - Restablece a Monica

2

Otra solución sería borrar la pantalla al comienzo del archivo motd así:

^[[H^[[2J
whatever was originally in the motd file here

Nota: reemplace ^[con el símbolo de escape (que puede crear en el editor nano presionando las siguientes teclas: esc+ v+ esc)


-2

¿Quizás alguna solución en caso de que solo quiera cambiar la última IP de inicio de sesión?

Por ejemplo, puede cambiar la dirección IP que se muestra a "localhost" iniciando sesión en ssh nuevamente desde la máquina controlada a distancia.

Inicio de sesión remoto a través de ssh >> ssh username @ localhost

Ahora la última IP registrada será localhost

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.