在CentOS系统中,SSH(Secure Shell)服务是远程管理服务器的核心组件,其日志记录了所有登录尝试、认证行为和操作轨迹,对于排查安全事件、分析系统异常至关重要,本文将详细介绍CentOS系统中查看SSH日志的多种方法、日志文件位置、常见日志解析技巧及注意事项,帮助管理员高效掌握系统安全状态。

SSH日志文件位置及默认配置
CentOS系统中的SSH日志主要分为两种类型:系统级日志和SSH服务专用日志。
系统级日志(rsyslog管理)
默认情况下,SSH服务的日志会由rsyslog服务统一管理,记录在/var/log/secure文件中,该文件包含所有与安全相关的日志,如SSH登录成功/失败记录、认证错误、权限变更等,若系统使用systemd日志(CentOS 7及以上版本默认),可通过journalctl命令查看实时日志。SSH服务配置日志
SSH服务的配置文件/etc/ssh/sshd_config中,可通过LogLevel参数调整日志详细程度(默认为INFO,可选VERBOSE、DEBUG等),修改后需重启SSH服务(systemctl restart sshd)使配置生效,日志文件路径可通过SyslogFacility和LogLevel进一步自定义,但通常推荐使用默认的/var/log/secure以保持日志统一性。
查看SSH日志的常用方法
直接查看日志文件
使用cat、less、tail等命令直接读取/var/log/secure文件。
查看实时日志流:
tail -f /var/log/secure
此命令会持续输出日志文件的最新内容,适合监控实时登录行为。
查看最后N行日志:
tail -n 100 /var/log/secure
查看最近100条日志记录,快速定位最新事件。
分页查看日志:
less /var/log/secure
支持上下翻页、关键词搜索(通过输入关键词),适合分析大量历史日志。

使用grep过滤关键信息
通过grep命令结合正则表达式过滤特定条件的日志,提高分析效率。
查看登录失败记录:
grep "Failed password" /var/log/secure
输出所有因密码错误导致的登录失败,包含IP地址、时间戳和用户名。
查看登录成功记录:
grep "Accepted password" /var/log/secure
记录成功登录的客户端IP、用户名及时间。
查看SSH暴力破解尝试:
grep "Invalid user" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c统计所有无效用户登录尝试的IP地址及次数,识别潜在攻击源。
使用journalctl查看systemd日志
CentOS 7及以上版本,SSH日志可能被systemd-journald服务收集,可通过journalctl查询。
查看SSH相关日志:
journalctl -u sshd
过滤出SSH服务单元的所有日志。

查看实时日志并过滤关键词:
journalctl -f -u sshd | grep "Failed password"
实时监控SSH登录失败事件。
按时间范围查询:
journalctl --since "2025-10-01 10:00:00" --until "2025-10-01 12:00:00" -u sshd
查询指定时间段内的SSH日志。
日志分析与安全实践
常见日志关键词解析
- Accepted publickey:密钥认证成功,记录公钥类型(如ssh-rsa)和用户名。
- Failed publickey:密钥认证失败,可能因密钥不匹配或权限问题。
- pam_unix(sshd:auth): authentication failure:PAM模块认证失败,通常与密码错误相关。
- error: PAM: Authentication failure for:明确指出认证失败的用户名。
安全加固建议
- 定期审计日志:通过
logrotate工具配置日志轮转(默认已配置),避免日志文件过大。 - 设置登录失败阈值:在
/etc/ssh/sshd_config中配置MaxAuthTries(默认6次),限制单次连接的认证尝试次数。 - 使用fail2ban防暴力破解:结合
fail2ban服务,自动封禁频繁失败的IP地址,提升安全性。
注意事项
- 日志权限:
/var/log/secure通常仅允许root用户读取,普通用户需通过sudo或切换至root身份查看。 - 日志清理:重要日志需定期归档,避免因磁盘空间不足导致日志丢失,可使用
logrotate或手动压缩:gzip /var/log/secure.1
- 时区同步:确保服务器时区正确(可通过
timedatectl设置),避免日志时间戳混乱影响分析。
相关问答FAQs
Q1: 如何在CentOS中查找特定IP地址的SSH登录记录?
A: 可通过以下命令过滤目标IP的日志:
grep "IP_ADDRESS" /var/log/secure
将IP_ADDRESS替换为目标IP,或使用awk提取IP字段:
grep "Accepted password" /var/log/secure | awk '{print $(NF-3)}' | grep "IP_ADDRESS" Q2: SSH日志显示“Connection closed by authenticating user”,可能的原因是什么?
A: 该日志表示用户通过认证后连接被终止,常见原因包括:
- 客户端或服务端网络不稳定;
- SSH服务配置限制(如
MaxSessions或LoginGraceTime参数设置过短); - 客户端主动断开(如手动关闭终端)。
建议检查网络连接及SSH服务配置,或通过journalctl -u sshd -p err查看详细错误信息。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复