Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

SSH là giao thức phổ biến và hiệu quả cho phép đăng nhập và quản lý remote host từ máy local. Hướng dẫn này đi qua các lệnh để kiểm tra kết nối SSH đang hoạt động trên remote host.

Lưu ý: tùy cấu hình hệ thống, một số lệnh thảo luận có thể yêu cầu quyền root hoặc sudo.

1. Dùng lệnh WHO

Lệnh đầu để hiển thị kết nối SSH hoạt động là who.

Lệnh who dùng để hiện ai đang đăng nhập hệ thống. Nó cho phép xem user kết nối và địa chỉ IP nguồn.

Để dùng who, chỉ cần nhập who không tham số.

Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

Trong output trên, bạn thấy một user debian kết nối qua tty và hai phiên SSH từ remote IP.

Bạn cũng có thể thêm tham số cho who để hiện chi tiết.

Ví dụ, để hiện last boot cho user kết nối, thêm cờ -b -u:

who -b -u
Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

Lệnh who cung cấp thêm tùy chọn cho kết quả tùy chỉnh. Xem trang manual để biết thêm.

2. Dùng lệnh W

Lệnh tiếp theo để hiển thị trạng thái phiên SSH và user kết nối server là w. Khác với who, lệnh w cho thêm thông tin tiến trình chạy cho mỗi user.

Thêm vào đó, w cho thông tin về kết nối SSH idle, rất hữu ích khi cần chấm dứt chúng.

Nếu chạy lệnh không tùy chọn khác, bạn nhận output như dưới.

Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

Trong ví dụ, w cho thông tin chi tiết: username, TTY method, source IP, thời gian login, idle time và hơn thế.

Giống who, bạn cũng dùng w với tham số. Bảng dưới hiện các tham số dùng với w.

Tham sốChức năng
-h, --no-headerYêu cầu terminal không in header
-u, --no-currentYêu cầu terminal bỏ qua username khi hiển thị tiến trình và CPU time user kết nối
-s, --shortYêu cầu terminal in output rút gọn – loại bỏ login time, JCPU và PCPU
-f, --fromBật/tắt tùy chọn FROM của print output
--helpHiển thị tùy chọn/tham số w và thoát
-v, --versionHiển thị thông tin phiên bản và thoát
userThu hẹp kết quả đến user chỉ định

Ví dụ dưới dùng w với -s và -f để hiện output rút gọn phiên SSH hiện tại với phần FROM cắt bớt.

Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

Mặc dù hiếm dùng, bạn cũng dùng w với tham số environment và file. Để học thêm, xem man pages.

3. Dùng lệnh Last

Bạn cũng dùng last để hiển thị tất cả phiên SSH kết nối. Lệnh last hiện danh sách user đăng nhập gần nhất.

Nó hoạt động bằng cách kiểm tra file chỉ định. Ví dụ, "/var/log/wtmp" hiện tất cả user đăng nhập/đăng xuất từ khi file tạo. Lệnh cũng cho thông tin phiên SSH tạo giữa client và server.

Cú pháp chung cho last:

last

Ví dụ.

Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

Vì output từ last rất lớn, dùng grep để hiện chỉ phiên hoạt động.

Ví dụ:

last | grep still
Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

Bạn cũng sửa output last để hiện chi tiết.

Ví dụ, để hiện username và domain đầy đủ, dùng cờ -w.

last -w

Lệnh last hỗ trợ nhiều tùy chọn. Đây là tùy chọn thường dùng nhất.

Tham sốChức năng
-a, --hostlastHiển thị hostname ở cột cuối
-d, --dnsLinux lưu hostname và IP remote host. Tham số này chuyển IP thành hostname
-file, --fileYêu cầu last dùng file chỉ định khác /var/log/wtmp
-F, --fulltimesYêu cầu last in tất cả ngày/giờ login/logout
-i, --ipTương tự –dns, nhưng thay vì hiện hostname, hiện số IP

4. Dùng lệnh netstat

Chúng ta không thể quên lệnh netstat. Netstat dùng để hiện tất cả kết nối mạng, interface mạng, bảng định tuyến và hơn thế.

Bạn cũng dùng netstat lọc phiên SSH established hoặc kết nối trên server Linux:

netstat | grep ssh
Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

Lệnh trên chỉ hiện kết nối SSH established.

Để hiện tất cả kết nối bao gồm listening và non-listening, dùng cờ -a:

nestat -a | grep ssh
Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

5. Dùng lệnh ss

Nếu muốn học thêm thông tin về phiên SSH kết nối, dùng lệnh ss, hiển thị dữ liệu socket, tương tự netstat.

Ví dụ, grep output từ ss với tùy chọn -a (all) để hiện tất cả phiên SSH kết nối. Cú pháp:

ss -a | grep ssh
Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

Output trên hiển thị tất cả kết nối SSH trên remote host. Bao gồm SSHD daemon.

Để lọc kết nối SSH established, pipe output trở lại grep.

ss -a | grep ssh | grep ESTAB
Cách hiển thị tất cả kết nối SSH đang hoạt động trong Linux

Các lệnh trên chỉ trả về kết nối SSH hoạt động.

Lệnh ss cũng có hàng tá tùy chọn khác để học về kết nối server hoạt động. Ví dụ, dùng cờ -e hiện thêm về thông tin socket.

Kết luận

Thực hành tốt là giám sát remote host cho đăng nhập SSH trái phép và thực hiện hành động cần thiết, như bảo mật server hoặc tắt xác thực mật khẩu. Tiếp theo, bạn cũng có thể dùng reverse SSH tunneling cho phép kết nối ngoài vào PC.