温馨提示×

如何在Ubuntu上查看SSH连接日志

小樊
48
2025-11-16 15:12:01
栏目: 智能运维

在 Ubuntu 上查看 SSH 连接日志

一 常用查看方式

  • 使用 journalctl 查看 sshd 服务日志(适用于 systemd 系统,如 Ubuntu 16.04+
    • 查看全部:sudo journalctl -u ssh
    • 最近 100 行:sudo journalctl -u ssh -n 100
    • 按时间过滤:sudo journalctl -u ssh --since "2025-11-16 00:00:00" 或相对时间 --since -1h
    • 实时跟踪:sudo journalctl -fu ssh
    • 按单元精确过滤:sudo journalctl _SYSTEMD_UNIT=sshd.service
  • 查看传统日志文件 /var/log/auth.log
    • 查看全部:sudo cat /var/log/auth.log
    • 实时跟踪:sudo tail -f /var/log/auth.log
    • 过滤关键词:sudo grep "sshd" /var/log/auth.log
    • 仅失败尝试:sudo grep "Failed password" /var/log/auth.log
    • 仅成功登录:sudo grep "Accepted" /var/log/auth.log
    • 指定用户:sudo grep "username" /var/log/auth.log
  • 其他辅助命令
    • 历史登录会话:last
    • 各用户最近一次登录:lastlog
    • 当前在线用户与会话:w

二 日志路径与差异

  • Debian/Ubuntu 系列默认将认证相关日志写入:/var/log/auth.log
  • RHEL/CentOS 系列通常使用:/var/log/secure
  • 使用 systemd 的系统可统一通过 journalctl -u ssh 查询 sshd 日志
  • 若不确定日志配置,可检查 rsyslog 配置:sudo grep -i sshd /etc/rsyslog.conf

三 实用排查命令示例

  • 实时监控失败与成功登录
    • 失败:sudo journalctl -fu ssh | grep "Failed password"
    • 成功:sudo journalctl -fu ssh | grep "Accepted"
  • 定位某个 IP 的尝试
    • sudo grep "192.0.2.10" /var/log/auth.log
  • 查看某用户最近登录
    • last username
  • 检查当前登录用户
    • w

四 安全与维护建议

  • 遭遇暴力破解时,建议安装并启用 Fail2Bansudo apt install fail2ban
  • 提升安全性:在 /etc/ssh/sshd_config 中修改端口(如 Port 2222)、禁用密码登录并启用密钥认证(PasswordAuthentication no),修改后重启 SSH 服务:sudo systemctl restart ssh
  • 注意:修改 sshd_config 前先保留一个已验证可用的 rootsudo 会话,避免被锁死

0