Não vejo eventos de desconexão SSH com `journalctl -u sshd`

Não vejo eventos de desconexão SSH com `journalctl -u sshd`

Quero monitorar sessões SSH, incluindo eventos de login e logout. Quando executo journalctlsem sinalizadores, vejo os dois eventos de login como:

Accepted publickey for root from 192.168.1.24 port 56464

e eventos de logout como:

Disconnected from user root 192.168.1.24 port 56464

Mas quando quero reduzir a saída e filtrar apenas os sshdeventos que executo journalctl -u sshd. Neste caso vejo apenas os Accepted publickeyeventos, mas não os Disconnected from usereventos.

Responder1

TL;DR: Em vez de journalctl -u sshdvocê deve usar journalctl -t sshd.

Para descobrir isso, executei journalctl -o json-prettye analisei eventos de login e logout. Os eventos de login possuem "_SYSTEMD_UNIT" : "sshd.service"saída JSON, portanto, eles aparecem quando você especifica a unidade com -u sshd. Mas os eventos de logout têm "_SYSTEMD_UNIT" : "session-27.scope"e é por isso que não são mostrados para -u sshd. Obviamente, o número da sessão é diferente para cada sessão SSH.

O queécomum para eventos de logout e login é "SYSLOG_IDENTIFIER" : "sshd"o que significa que temos que usar o -tsinalizador (ou formato longo --identifier) para especificar o identificador.

Isso está no Fedora e no RHEL. Ainda não testei no Debian/Ubuntu. Por favor, comente se é diferente lá.

Espero que isso ajude alguém.

informação relacionada