
我想監控 SSH 會話,包括登入和登出事件。當我在沒有任何標誌的情況下運行時journalctl
,我會看到兩個登入事件,例如:
Accepted publickey for root from 192.168.1.24 port 56464
和註銷事件,例如:
Disconnected from user root 192.168.1.24 port 56464
但是當我想減少輸出並僅過濾sshd
我運行的事件時journalctl -u sshd
。在這種情況下,我只看到Accepted publickey
事件,但看不到Disconnected from user
事件本身。
答案1
TL;DR:journalctl -u sshd
您應該使用journalctl -t sshd
.
為了弄清楚這一點,我運行journalctl -o json-pretty
並分析了登入和登出事件。登入事件位於"_SYSTEMD_UNIT" : "sshd.service"
其 JSON 輸出中,因此當您使用 指定單位時,它們就會顯示-u sshd
。但是註銷事件有"_SYSTEMD_UNIT" : "session-27.scope"
,這就是為什麼它們沒有顯示為-u sshd
。當然,每個 SSH 會話的會話號碼都是不同的。
什麼是登出和登入事件的共同點是,"SYSLOG_IDENTIFIER" : "sshd"
這意味著我們必須使用-t
標誌(或長格式--identifier
)來指定標識符。
這是在 Fedora 和 RHEL 上。我還沒有在 Debian/Ubuntu 上測試過。如果有不同之處請評論。
我希望這對某人有幫助。