Kiểm tra trực tiếp cổng
Có phản hồi ping hay trang web hoạt động không nói lên điều gì về SSH, vì mỗi loại dùng giao thức hoặc cổng khác nhau. Hãy kiểm tra cổng TCP trực tiếp từ máy khách. Connection refused nghĩa là có phản hồi nhưng không dịch vụ nào chấp nhận kết nối. Timeout nghĩa là không có phản hồi, thường cho thấy vấn đề ở tường lửa, định tuyến hoặc máy bị quá tải.
nc -vz -w 5 server.example 22
ssh -v -o ConnectTimeout=5 user@server.exampleConnection refused: kiểm tra sshd từ bảng điều khiển
Dùng bảng điều khiển của nhà cung cấp hoặc trình giám sát máy ảo, thay vì SSH. Kiểm tra dịch vụ có đang chạy không, đang lắng nghe trên địa chỉ và cổng nào, và cấu hình có hợp lệ không. Trên các bản Ubuntu gần đây, SSH khởi động qua ssh.socket, vì vậy hãy kiểm tra cả đơn vị socket này. Các bản phân phối khác có thể đặt tên dịch vụ là sshd.
sudo systemctl status ssh.service ssh.socket
sudo ss -lntp | grep -E ':22\b|sshd'
sudo sshd -t
sudo journalctl -u ssh -n 50 --no-pagerTimeout: kiểm tra các tường lửa
Kiểm tra tường lửa trên máy chủ và cả các bộ lọc bên ngoài, như nhóm bảo mật đám mây, bộ định tuyến hoặc bảng quản lý của nhà cung cấp. Để xem gói tin có đến hay không, chạy tcpdump trên máy chủ trong lúc thử kết nối. Nếu không thấy gì, điểm chặn nằm trước máy chủ. Nếu gói tin đến nhưng không có phản hồi đi ra, hãy kiểm tra trên máy chủ.
sudo ufw status verbose
sudo nft list ruleset | less
sudo tcpdump -ni any tcp port 22Bị chặn bởi fail2ban hoặc do đổi cổng
Sau các lần đăng nhập thất bại, fail2ban có thể đã chặn địa chỉ của bạn, khiến chỉ kết nối từ địa chỉ đó gặp timeout hoặc bị từ chối. Thử từ mạng khác sẽ nhanh chóng làm rõ điều này. Cũng kiểm tra việc đổi cổng bằng Port hoặc giới hạn ở một địa chỉ bằng ListenAddress trong sshd_config hay trong một tệp dưới /etc/ssh/sshd_config.d.
sudo fail2ban-client status sshd
sudo sshd -T | grep -E '^(port|listenaddress) 'Kết nối được tới cổng nhưng đăng nhập bị treo
Nếu kết nối TCP thành công nhưng chuỗi chào SSH không bao giờ đến, sshd chỉ hoạt động một phần hoặc hệ thống đang quá tải. Kiểm tra bộ nhớ, dung lượng đĩa và tải từ bảng điều khiển. Đĩa đầy hoặc cạn bộ nhớ có thể ngăn mở phiên mới trong khi các dịch vụ hiện có vẫn phản hồi.
uptime
free -h
df -hKiểm tra bằng CH-J Server Manager
Server Diagnostics có thể kiểm tra ping, kết nối TCP và chuỗi nhận dạng SSH mà không đăng nhập, cho cả IPv4 và IPv6, giúp bạn thấy giai đoạn nào thất bại. Công cụ chỉ thực hiện kiểm tra từ máy tính của bạn. Nó không thể xem bên trong máy chủ hay cho biết tường lửa nào đã loại bỏ gói tin, nên bạn vẫn cần bảng điều khiển cho các bước kiểm tra ở trên.