NỘI DUNG
Mô tả lỗi
Sau khi nâng cấp hệ thống lên Ubuntu 24.04 LTS, bạn có thể gặp vấn đề không thể kết nối SSH dù đã sử dụng đúng mật khẩu hoặc SSH key. Khi kiểm tra bằng lệnh netstat -nltp, bạn nhận thấy tiến trình lắng nghe trên cổng 22 (hoặc cổng đã đổi) là /sbin/init (PID 1), điều này không phải là hành vi bình thường của dịch vụ SSH.

Nguyên nhân
- Tiến trình
/sbin/init (PID 1)đang chiếm cổng 22, thay vì sshd (dịch vụ SSH thông thường). - Trên Ubuntu, có hai cách quản lý dịch vụ SSH:
- ssh.service: Giữ sshd chạy liên tục.
- ssh.socket: Chỉ khởi động sshd khi có kết nối đến cổng 22 và dừng khi kết nối đóng.
- Nếu cấu hình không đúng hoặc dịch vụ không được vô hiệu hóa hoàn toàn,
/sbin/initcó thể chiếm cổng 22, dẫn đến lỗi không thể SSH.
Cách khắc phục
Dưới đây là các bước để khắc phục lỗi và đảm bảo hệ thống không hoạt động như một máy chủ SSH nếu không cần thiết:
1. Dừng cả 2 dịch vụ SSH
Bạn hãy VNC vào máy chủ và chạy lệnh sau để dừng ssh.service và ssh.socket:
systemctl stop ssh
systemctl stop ssh.socket2. Vô hiệu dịch vụ ssh.socket
Đảm bảo các dịch vụ này không tự động khởi động lại khi hệ thống khởi động:
systemctl disable ssh.socket3. Kết thúc các tiến trình SSH còn sót lại
Để chắc chắn không còn tiến trình nào liên quan đến SSH đang chạy:
pkill -9 ssh
pkill -9 ssh.socket4. Ngăn SSH khởi động lại
Tạo tệp /etc/ssh/sshd_not_to_be_run để ngăn cả ssh.service và ssh.socket khởi động:
touch /etc/ssh/sshd_not_to_be_run5. Khởi động lại dịch vụ
Hãy khởi động lại dịch vụ sau khi kiểm tra cấu hình:
systemctl restart ssh
Lưu ý:
- Kiểm tra tệp cấu hình SSH (
/etc/ssh/sshd_config) để đảm bảo PermitRootLogin được đặt thành no để tăng cường bảo mật. - Sử dụng các công cụ như chkrootkit và rkhunter để kiểm tra hệ thống, đảm bảo không có phần mềm độc hại.
- Nếu bạn không muốn hệ thống hoạt động như một máy chủ SSH, hãy giữ cả
ssh.servicevàssh.socketở trạng thái vô hiệu hóa và đảm bảo tệp/etc/ssh/sshd_not_to_be_runtồn tại.
Kiểm tra sau khi khắc phục
- Chạy lại lệnh
netstat -nltpđể xác nhận rằng cổng 22 không còn được chiếm bởi/sbin/init (PID 1). - Nếu bạn vẫn cần SSH, thử kết nối lại để đảm bảo dịch vụ hoạt động bình thường.
Xem thêm tại đây: https://www.reddit.com/r/Ubuntu/comments/1fof6wq/pid_1_listening_on_port_22/
