首页/安全/取证与溯源速查/sshd 日志粒度与 VERBOSE 价值
Linux 取证135 条

sshd 日志粒度与 VERBOSE 价值

默认 INFO 级别只记录认证结果,VERBOSE 会额外记录连接来源与密钥指纹;调整前后日志内容不同,时间线内部要区分。

取证与溯源速查安全更新于 2026-10-13

日志粒度决定能查到什么

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 会显著放大日志写入量,在磁盘紧张的取证机上可能触发轮转覆盖旧记录,操作前先确认日志容量与备份。

易错点

  • 把 INFO 日志的缺失当作「没有密钥登录」,实际是级别不够
  • 改了配置文件却未 reload,日志粒度与文件内容不一致
  • 忘了检查 sshd_config.d 下的片段配置,读到的是被覆盖的旧值
  • 为排障临时调到 DEBUG 后未改回,正常日志被快速轮转覆盖

数据来源与参考

  • OpenSSH 手册(sshd_config(5) LogLevel)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌