我想监视 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 上测试过。如果那里有不同,请评论。
我希望这对某人有帮助。