/var/log/secure是RHEL/CentOS中记录SSH、sudo、su等认证事件的核心日志文件,实时查看应优先用sudo tail -F /var/log/secure(-F自动适配日志轮转)或更可靠的sudo journalctl -u sshd -f(systemd原生支持、免权限与轮转陷阱),配合grep --line-buffered过滤关键行。

/var/log/secure 是 RHEL/CentOS 系统中记录 SSH 登录、sudo、su 等认证授权事件的核心日志文件。要实时查看它,关键不是“能不能看”,而是**用对命令、避开权限和轮转陷阱**。
tail -f /var/log/secure 最常用但容易卡住
直接运行 tail -f /var/log/secure 看起来最简单,但实际中常遇到两个问题:
- 权限不足:普通用户执行会报
Permission denied,必须加sudo—— 但sudo tail -f本身有风险(某些旧版 sudo 会拒绝管道类命令);更稳妥写法是sudo tail -f /var/log/secure - 日志轮转后断连:rsyslog 默认每天或按大小轮转
/var/log/secure,生成/var/log/secure.1、/var/log/secure.2.gz等。用-f会停在旧文件末尾,不再输出新内容
正确做法是改用 tail -F(大写 F):sudo tail -F /var/log/secure。它能自动检测文件被重命名或重建,并切换到新文件继续追踪。
journalctl 替代方案:systemd 系统更可靠
如果你的系统启用了 systemd-journald(绝大多数 2016 年后的发行版默认启用),/var/log/secure 其实只是 journald 日志的一个落地副本。直接查 journald 更实时、更完整,且天然支持轮转和权限继承:
- 只看 SSH 认证事件:
sudo journalctl -u sshd -f - 查所有认证类消息(含 sudo/su):
sudo journalctl SYSLOG_FACILITY=10 -f(facility 10 是 auth/authpriv 标准值) - 加时间过滤,比如最近 10 分钟:
sudo journalctl --since "10 minutes ago" SYSLOG_FACILITY=10 -f
注意:journalctl 不依赖文件路径,不受 /var/log/secure 是否存在或是否可读影响;但需确保 journald 正在运行(systemctl status systemd-journald 可确认)。
grep 实时过滤失败登录:别等刷屏再找
排查暴力破解或误输密码时,你不需要看全部日志,而要聚焦 Failed password 或 Invalid user 这类关键行。但 tail -f + grep 组合有坑:
-
sudo tail -f /var/log/secure | grep "Failed password"在部分 shell 下会因缓冲导致延迟甚至不输出 - 更稳的方式是让
grep强制行缓冲:sudo tail -F /var/log/secure | grep --line-buffered "Failed password" - 或者用
journalctl原生过滤:sudo journalctl -u sshd -f | grep --line-buffered "Failed password"
额外提示:失败登录通常还带 IP,加 -o short-iso 可看精确时间戳,方便关联其他日志。
Debian/Ubuntu 用户别硬找 /var/log/secure
这些系统默认不用 /var/log/secure,而是写入 /var/log/auth.log。强行 ls /var/log/secure 找不到不是配置错了,是发行版约定不同。验证方法很简单:
- 先运行
ls -l /var/log/*auth*,看是否存在auth.log或secure - 或者直接查
rsyslog配置:grep -E "(auth|authpriv)" /etc/rsyslog.conf /etc/rsyslog.d/*.conf 2>/dev/null,看日志被路由到哪个文件 - 实在不确定,统一用
sudo journalctl SYSLOG_FACILITY=10 -f,它跨发行版有效
真正容易被忽略的点是:日志内容是否开启详细记录。比如某些最小化安装可能关闭了 sshd 的 LogLevel VERBOSE,导致失败原因不写入日志——这时光看 /var/log/secure 或 journalctl 也找不到线索,得回头检查服务配置。


















