在 Debian 系统中,查看登录日志通常依赖 systemd 的 journalctl 以及传统的日志文件(如 /var/log/auth.log)。下面按常见场景给你一份实用指南。
journalctl(systemd 系统)journalctl _COMM=sshd
查看 SSH 登录相关日志。
查看所有登录记录:
journalctl | grep -E "login|session opened|session closed"
按时间查看(例如今天):
journalctl --since today | grep -E "login|sshd"
journalctl | grep "session opened"
示例输出:
Jan 20 10:23:01 debian sshd[1234]: pam_unix(sshd:session): session opened for user root by (uid=0)
cat /var/log/auth.log
实时查看:
tail -f /var/log/auth.log
过滤 SSH 登录:
grep sshd /var/log/auth.log
查看成功登录:
grep "Accepted" /var/log/auth.log
查看失败登录:
grep "Failed" /var/log/auth.log
last 命令(最常用)last
查看指定用户:
last username
查看失败登录尝试:
lastb
需要 root 权限:
sudo lastb
who / w当前登录用户:
who
详细信息(包含正在执行的命令):
w
loginctl list-sessions
查看某个会话详情:
loginctl session-status <session-id>
| 关键词 | 含义 |
|---|---|
Accepted password |
成功密码登录 |
Accepted publickey |
成功密钥登录 |
Failed password |
登录失败 |
session opened |
会话开启 |
session closed |
会话关闭 |
Invalid user |
不存在的用户尝试登录 |
Debian 会轮转日志,旧日志可能在:
/var/log/auth.log.1
/var/log/auth.log.2.gz
查看压缩日志:
zcat /var/log/auth.log.2.gz | grep sshd
# 1. 看当前登录
who
# 2. 看历史登录
last
# 3. 看 SSH 登录
grep sshd /var/log/auth.log
# 4. 看失败登录
grep "Failed" /var/log/auth.log
如果你是想:
可以告诉我具体场景,我可以给你更精确的命令。