Mỗi người dùng mới kết nối sẽ tạo ra một sshd
phiên mới với một PID cụ thể. Bạn có thể sử dụng pstree
để in những lệnh nào được kế thừa từ sshd
phiên nào, và sau đó kiểm tra chéo bộ PID này /var/log/auth.log
.
Ví dụ (ẩn danh): Tôi đã đăng nhập vào một máy chủ từ xa với 3 phiên đồng thời, với cùng một người dùng từ xa. Bây giờ tôi muốn tìm ra IP mà máy khách đã chạy mà chạy lệnh watch date
.
$ pstree -p | grep watch
| |-sshd(15243)---sshd(15342)---bash(15343)---watch(15450)
$ sudo grep 15243 /var/log/auth.log
Mar 7 15:37:29 XXXXXXXXXX sshd[15243]: Accepted publickey for XXXXXXXXXX from 12.34.56.78 port 48218 ssh2
Mar 7 15:37:29 XXXXXXXXXX sshd[15243]: pam_unix(sshd:session): session opened for user XXXXXXXXXX by (uid=0)
Mar 7 15:37:44 XXXXXXXXXX sudo: XXXXXXXXXX : TTY=pts/7 ; PWD=/home/XXXXXXXXXX ; USER=root ; COMMAND=/bin/grep 15243 /var/log/auth.log
pstree -p
cho thấy watch
lệnh được kế thừa từ sshd
với PID 15243. grep
ing cho PID này /var/auth/auth.log
cho thấy rằng đó là IP 12.34.56.78 đã bắt đầu phiên này. Do đó đây cũng là người dùng bắt đầu watch
.
Đối với việc tìm kiếm history
cụ thể người dùng này, không thể thực hiện được từ những gì tôi có thể thấy khi tất cả người dùng từ xa đang sử dụng cùng một người dùng SSH cục bộ. Ngoài ra, nó có thể dễ dàng bị giả mạo / bất hoạt / v.v., vì vậy nó không thực sự đáng tin cậy. Nếu nó được lưu vào tệp lịch sử, thì bạn có thể chỉ cần tìm cp
lệnh và nhìn ngược lại trong tệp, nhưng nếu nó không có ở đó, thì không có nhiều việc phải làm.
grep: /var/log/auth.log: No such file or directory
:-(