Linux日志中如何查找失败的SSH登录

Linux日志中如何查找失败的SSH登录
最新回答
三天三夜,三斤作业

2026-05-27 05:05:52

在Linux系统中查找失败的SSH登录尝试,可根据不同发行版选择以下方法:

一、确认日志文件路径
  • Debian/Ubuntu系统:日志通常保存在/var/log/auth.log。
  • RHEL/CentOS系统:日志通常保存在/var/log/secure。
二、方法一:使用文本编辑器手动搜索
  1. 打开终端,使用sudo权限编辑日志文件:

    Ubuntu/Debian:sudo nano /var/log/auth.log

    RHEL/CentOS:sudo nano /var/log/secure

  2. 搜索关键词:

    在编辑器中按/键进入搜索模式,输入以下关键词之一:

    Failed

    authentication failed

    按回车键后,编辑器会高亮显示匹配的行,通过N键(向前)或n键(向后)导航结果。

三、方法二:使用grep命令快速筛选1. 基础搜索
  • Ubuntu/Debian:sudo grep "Failed" /var/log/auth.log
  • RHEL/CentOS:sudo grep "Failed" /var/log/secure

    此命令会输出所有包含Failed的行,适用于快速定位问题。

2. 显示行号(便于定位)
  • 添加-n选项显示匹配行的行号:sudo grep -n "Failed" /var/log/auth.log # Ubuntu/Debiansudo grep -n "Failed" /var/log/secure # RHEL/CentOS
3. 显示上下文(分析关联信息)
  • 添加-C选项显示匹配行前后若干行(例如前后5行):sudo grep -C 5 "Failed" /var/log/auth.log # Ubuntu/Debiansudo grep -C 5 "Failed" /var/log/secure # RHEL/CentOS

    此功能有助于查看失败登录的完整上下文(如时间、IP地址、用户名等)。

四、关键字段解析

失败的SSH登录记录通常包含以下信息:

  • 时间戳:记录尝试发生的时间。
  • IP地址:发起登录的客户端IP(如192.168.1.100)。
  • 用户名:尝试登录的用户名(如root或无效用户)。
  • 错误类型:如Failed password(密码错误)或Invalid user(用户不存在)。

示例日志行:

Jan 10 14:23:45 server sshd[1234]: Failed password for invalid user admin from 192.168.1.100 port 22 ssh2五、进阶技巧
  1. 组合关键词搜索:

    使用grep -E支持正则表达式,例如同时匹配Failed和invalid user:sudo grep -E "Failed|invalid user" /var/log/auth.log

  2. 按时间范围筛选:

    结合sed或awk提取特定时间段的日志(需熟悉文本处理工具)。

  3. 实时监控日志:

    使用tail -f实时查看日志更新:sudo tail -f /var/log/auth.log | grep "Failed"

六、安全建议
  • 定期检查日志:发现异常IP或频繁失败尝试时,及时封锁IP或调查原因。
  • 配置防火墙:使用iptables或fail2ban自动阻止暴力破解行为。
  • 禁用Root登录:通过修改/etc/ssh/sshd_config中的PermitRootLogin no减少风险。

通过上述方法,可高效定位失败的SSH登录尝试,为系统安全提供有力支持。