Skip to content

Commit 2701e8e

Browse files
committed
docs: add chapter log
1 parent 6fd25d3 commit 2701e8e

2 files changed

Lines changed: 89 additions & 0 deletions

File tree

chapters.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
- client.md: SSH 客户端
33
- key.md: SSH 密钥登录
44
- server.md: SSH 服务器
5+
- log.md: 日志
56
- port-forwarding.md: 端口转发
67
- ca.md: SSH 证书登录
78
- scp.md: scp 命令

docs/log.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# SSH 日志
2+
3+
SSH 在服务器端可以生成日志,记录登录当前服务器的情况。
4+
5+
SSH 日志是写在系统日志当中的,查看的时候需要从系统日志里面找到跟 SSH 相关的记录。
6+
7+
## journalctl 命令
8+
9+
如果系统使用 Systemd,可以使用`journalctl`命令查看日志。
10+
11+
```bash
12+
$ journalctl -u ssh
13+
14+
Mar 25 20:25:36 web0 sshd[14144]: Accepted publickey for ubuntu from 10.103.160.144 port 59200 ssh2: RSA SHA256:l/zFNib1vJ+64nxLB4N9KaVhBEMf8arbWGxHQg01SW8
15+
Mar 25 20:25:36 web0 sshd[14144]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)
16+
Mar 25 20:39:12 web0 sshd[14885]: pam_unix(sshd:session): session closed for user ubuntu
17+
...
18+
```
19+
20+
上面示例中,返回的日志每一行就是一次登录尝试,按照从早到晚的顺序,其中包含了登录失败的尝试。`-u`参数是 Unit 单元的意思,`-u ssh`就是查看 SSH 单元,有的发行版需要写成`-u sshd`
21+
22+
`-b0`参数可以查看自从上次登录后的日志。
23+
24+
```bash
25+
$ journalctl -t ssh -b0
26+
```
27+
28+
`-r`参数表示逆序输出,最新的在前面。
29+
30+
```bash
31+
$ journalctl -t ssh -b0 -r
32+
```
33+
34+
`since``until`参数可以指定日志的时间范围。
35+
36+
```bash
37+
$ journalctl -u ssh --since yesterday # 查看昨天的日志
38+
$ journalctl -u ssh --since -3d --until -2d # 查看三天前的日志
39+
$ journalctl -u ssh --since -1h # 查看上个小时的日志
40+
$ journalctl -u ssh --until "2022-03-12 07:00:00" # 查看截至到某个时间点的日志
41+
```
42+
43+
下面的命令查看实时日志。
44+
45+
```bash
46+
$ journalctl -fu ssh
47+
```
48+
49+
## 其他命令
50+
51+
如果系统没有使用 Systemd,可以在`/var/log/auth.log`文件中找到 sshd 的日志。
52+
53+
```bash
54+
$ sudo grep sshd /var/log/auth.log
55+
```
56+
57+
下面的命令查看最后 500 行里面的 sshd 条目。
58+
59+
```bash
60+
$ sudo tail -n 500 /var/log/auth.log | grep sshd
61+
```
62+
63+
`-f`参数可以实时跟踪日志。
64+
65+
```bash
66+
$ sudo tail -f -n 500 /var/log/auth.log | grep sshd
67+
```
68+
69+
如果只是想看谁登录了系统,而不是深入查看所有细节,可以使用`lastlog`命令。
70+
71+
```bash
72+
$ lastlog
73+
```
74+
75+
## 日志设置
76+
77+
sshd 的配置文件`/etc/ssh/sshd_config`,可以调整日志级别。
78+
79+
```
80+
LogLevel VERBOSE
81+
```
82+
83+
如果为了调试,可以将日志调整为 DEBUG。
84+
85+
```
86+
LogLevel DEBUG
87+
```
88+

0 commit comments

Comments
 (0)