我没有看到使用“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 上测试过。如果那里有不同,请评论。

我希望这对某人有帮助。

相关内容