linux中修改ssh日志详细级别需两步:1. 在/etc/ssh/sshd_config中设置loglevel(如verbose),重启sshd;2. 确保rsyslog正确接收auth类日志,检查并配置/etc/rsyslog.conf,必要时分离sshd日志到独立文件。

Linux 中修改 SSH 服务的日志详细记录级别,核心是调整 sshd 的日志输出粒度,主要通过两个层面配合实现:SSH 守护进程自身的日志等级(LogLevel),以及底层 syslog/rsyslog 对该类日志的接收与处理策略。
1. 修改 sshd_config 中的 LogLevel
这是最直接、最关键的一步。编辑主配置文件:
sudo nano /etc/ssh/sshd_config查找或添加 LogLevel 行,可设为以下常用值(由简到详):
- INFO:默认值,记录登录成功、断开、密钥类型等基础事件
- VERBOSE:比 INFO 更细,额外记录公钥指纹、连接协议版本、密钥交换细节
- DEBUG、DEBUG1~DEBUG3:仅用于排障,会输出大量内部流程和加密协商过程,严禁在生产环境长期启用
例如,启用较详细的审计记录:
LogLevel VERBOSE保存后重启服务生效:
sudo systemctl restart sshd2. 确保 rsyslog 正确接收并落盘 AUTH 类日志
SSH 默认使用 SyslogFacility AUTH(或 AUTHPRIV),需确认 rsyslog 配置允许接收并写入对应日志文件(通常是 /var/log/secure 或 /var/log/auth.log)。
检查 rsyslog 主配置:
常见有效行示例:
auth,authpriv.* /var/log/auth.log若系统使用 AUTHPRIV(更安全),且该行被注释或缺失,需取消注释或添加,并重启 rsyslog:
3. 验证日志是否按预期生成
修改后,尝试一次 SSH 登录(成功或失败均可),然后实时观察日志:
sudo tail -f /var/log/auth.log或(CentOS/RHEL 系统):
sudo tail -f /var/log/secure你会看到类似以下内容(取决于 LogLevel):
sshd[1234]: Connection closed by authenticating user test 192.168.1.100 port 54321 [preauth]sshd[1234]: Accepted publickey for admin from 192.168.1.100 port 54322 ssh2: RSA SHA256:abc...4. (可选)将 SSH 日志单独分离到独立文件
便于审计追踪,可在 rsyslog 配置中新增规则:
if $syslogfacility-text == 'auth' and $programname == 'sshd' then /var/log/sshd.log& stop然后创建文件、赋权、重启 rsyslog:
sudo touch /var/log/sshd.log && sudo chown syslog:adm /var/log/sshd.logsudo systemctl restart rsyslog











