日志粒度决定能查到什么
sshd_config 中的 LogLevel 决定 SSH 服务把哪些事件写进日志。默认的 INFO 只记录认证结果,也就是登录成功、失败与断开,不会记录用户使用的密钥指纹;调到 VERBOSE 后会额外记录连接来源与密钥指纹,可以把一次登录关联到具体某把密钥。DEBUG 系列只在临时排障时使用,日志量非常大。排查时必须先确认事发当时的级别,级别调整只影响之后产生的记录,历史日志的粒度不会因此改变。
基本信息
| 配置项 | LogLevel,取 INFO / VERBOSE / DEBUG1-3 / QUIET 等 |
|---|---|
| 配置文件 | /etc/ssh/sshd_config 与 /etc/ssh/sshd_config.d/*.conf |
| 生效方式 | 修改后 reload sshd,不中断已建立连接 |
| 影响范围 | 只影响之后产生的日志,历史日志不变 |
典型使用场景
- 判断某次登录使用的是密码还是密钥,需要看指纹信息
- 解释为什么同一主机不同时间段的日志详细程度不一致
- 准备长期留证时把级别调到 VERBOSE 并评估日志量
- 排查后把临时调高的级别改回默认,避免日志膨胀
- 确认多个配置文件叠加后实际生效的级别
核查当前与历史
核查当前与历史
grep -nE '^\s*LogLevel' /etc/ssh/sshd_config /etc/ssh/sshd_config.d/*.conf 2>/dev/null
sshd -T 2>/dev/null | grep -i '^loglevel' # 查看实际生效值(需 root)
grep 'Accepted publickey' /var/log/secure | tail -5 # 密钥登录记录,RHEL 系
journalctl -u ssh --since '-7 days' | tail -20 # 按服务检索历史日志
ls -l --time-style=long-iso /etc/ssh/sshd_config # 配置改动时间与日志粒度变化对照日志级别对照
| 级别 | 记录内容 | 使用建议 |
|---|---|---|
| INFO | 认证成功与失败、断开原因 | 默认值,日常够用但不含指纹 |
| VERBOSE | 额外记录来源与密钥指纹 | 需要把登录关联到密钥时使用 |
| DEBUG 系列 | 连接协商与密钥交换细节 | 仅临时排障,日志量极大 |
| QUIET / FATAL | 几乎不记录或只记严重错误 | 会丢失关键认证记录,不建议 |
默认即 INFO 的发行版很多,此时日志里只有用户名与来源地址,看不到密钥指纹;若案件需要证明某把密钥被使用,直接依据这份日志会得出不成立的结论。
把级别调到 DEBUG 会显著放大日志写入量,在磁盘紧张的取证机上可能触发轮转覆盖旧记录,操作前先确认日志容量与备份。