我沒有看到“journalctl -u sshd”的 SSH 斷開連接事件

我沒有看到“journalctl -u sshd”的 SSH 斷開連接事件

我想監控 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 上測試過。如果有不同之處請評論。

我希望這對某人有幫助。

相關內容