Cada nuevo usuario que se conecta genera un nuevo sshd
sesión con un PID específico. Podrías usar pstree
para imprimir qué comandos se heredan de qué sshd
sesión, y luego verifique este PID en /var/log/auth.log
.
Ejemplo (anonimizado):Inicié sesión en un servidor remoto con 3 sesiones simultáneas, con el mismo usuario remoto. Ahora quiero saber de qué IP vino el cliente que ejecutó el comando watch date
.
$ pstree -p | grep watch
| |-sshd(15243)---sshd(15342)---bash(15343)---watch(15450)
$ sudo grep 15243 /var/log/auth.log
Mar 7 15:37:29 XXXXXXXXXX sshd[15243]: Accepted publickey for XXXXXXXXXX from 12.34.56.78 port 48218 ssh2
Mar 7 15:37:29 XXXXXXXXXX sshd[15243]: pam_unix(sshd:session): session opened for user XXXXXXXXXX by (uid=0)
Mar 7 15:37:44 XXXXXXXXXX sudo: XXXXXXXXXX : TTY=pts/7 ; PWD=/home/XXXXXXXXXX ; USER=root ; COMMAND=/bin/grep 15243 /var/log/auth.log
pstree -p
muestra que el watch
el comando se hereda de sshd
con PID 15243. grep
ing para este PID en /var/auth/auth.log
muestra que fue la IP 12.34.56.78 la que inició esta sesión. Por lo tanto, este también es el usuario que inició watch
.
En cuanto a encontrar history
para este usuario específicamente, no se puede hacer por lo que puedo ver cuando todos los usuarios remotos usan el mismo usuario SSH local. Además, puede falsificarse/desactivarse/etc. fácilmente, por lo que no es realmente fiable. Si se guarda en el archivo de historial, puede buscar el cp
comando y mirar hacia atrás en el archivo, pero si no está allí, entonces no hay mucho que hacer.