为什么我的 auth.log 文件是空的?

tru*_*ype 1 ssh login logging ubuntu-14.04

我有一个运行服务的 ubuntu 14.04 服务器,我目前正在设置一些日志可视化,但我注意到我的 /var/log/auth.log 是空的。

我认为它不会有太多内容,因为除了使用 ssh 密钥之外,我还禁用了 ssh 连接。但是,我确实希望有 sshd 日志。是否还有其他地方可以让我看到使用 ssh 密钥的登录信息,或者是否还有其他我不知道的事情发生?

我的最终目标是记录每次有人尝试使用密钥或不使用密钥登录时的日志。


编辑1

我看到有 auth.log 备份,但它们没有记录 ssh 尝试,或使用密钥成功的 ssh 登录。它们只显示 CRON 作业。

我还将 sshd_config 日志记录级别提升到 VERBOSE 而不是 INFO。

Agu*_*ias 6

在 Ubuntu 系统中,rsyslog处理系统日志,根据其配置将几个守护进程(例如 sshd)的输出重定向到它们各自的日志。

有几个配置文件可能会影响日志文件的使用。我会通过调试rsyslog现在,首先检查它的启动配置/etc/rsyslog.d(更有可能,50 default.conf),并寻找一条线,应该是这个样子:

auth,authpriv.*         /var/log/auth.log
Run Code Online (Sandbox Code Playgroud)

如果它没有设置为/var/log/auth.log,那么你刚刚发现了问题,输出会去其他地方。如果不...

接下来,检查rsyslog现在 实际上是运行systemctl status rsyslog,如果不是,可以禁用的东西,或它甚至不是表现为一个服务,你可以重新启用(如果它的存在)与守护systemctl enable rsyslog

此外,您的sshd 配置可能会完全禁用日志记录或覆盖 rsyslog 的配置,检查SyslogFacility您的sshd.conf内部,这可能会将消息重定向到另一个 rsyslog 设施,默认情况下应该是AUTH(作为第一步配置中的行) . 当然,LogLevel也很重要,但是你把它放进去了VERBOSE,所以这应该不是问题。

对于调试 sshd,您可以尝试使用 将其置于调试模式-d,如man 所述

调试模式。服务器将详细的调试输出发送到标准错误,并且不会将自己置于后台。服务器也不会分叉,只会处理一个连接。此选项仅用于服务器调试。多个 -d 选项可提高调试级别。最大值为 3。

如果您使用 sshd 连接,则在调整 sshd 时要小心,因为您当然可能最终被锁定在远程机器上。