SSH là cách chính để quản trị VPS Linux. Khi lệnh ssh báo lỗi, thông báo thường đã nói rõ nguyên nhân – chỉ cần biết đọc. Bài viết giải thích các lỗi SSH hay gặp nhất và cách xử lý từng lỗi. Nếu bạn chưa từng kết nối SSH, xem trước hướng dẫn kết nối VPS Linux bằng SSH.
Xem chi tiết lỗi bằng chế độ verbose
Thêm tham số -v để SSH in ra từng bước kết nối. Dòng cuối cùng trước khi lỗi thường chỉ ra vấn đề:
ssh -v [email protected]
“Connection refused”
Gói tin đã tới VPS nhưng không có dịch vụ nào lắng nghe ở cổng bạn kết nối.
- VPS đã đổi cổng SSH: kết nối kèm cổng, ví dụ
ssh -p 2222 [email protected]. - Dịch vụ SSH bị dừng hoặc lỗi cấu hình: vào VNC console, chạy
systemctl status ssh(Ubuntu, Debian) hoặcsystemctl status sshd(AlmaLinux, Rocky). - Vừa sửa
/etc/ssh/sshd_configsai cú pháp: kiểm tra bằngsshd -t, sửa lỗi rồi khởi động lại dịch vụ.
“Connection timed out”
Gói tin không nhận được phản hồi nào. Nguyên nhân thường là VPS đang tắt, sai IP, tường lửa trên VPS chặn cổng SSH hoặc mạng bạn đang dùng chặn kết nối ra ngoài.
- Kiểm tra trạng thái VPS trong khu vực khách hàng và thử
ping 203.0.113.10. - Thử đổi sang mạng khác (4G điện thoại) để loại trừ mạng công ty chặn cổng.
- Vào VNC console kiểm tra tường lửa:
ufw statustrên Ubuntu hoặcfirewall-cmd --list-alltrên AlmaLinux.
“Permission denied (publickey,password)”
Kết nối thành công nhưng máy chủ từ chối xác thực.
- Sai mật khẩu: khi gõ mật khẩu trong Terminal, màn hình không hiện ký tự nào – đó là bình thường. Tắt bộ gõ tiếng Việt và gõ lại cẩn thận.
- Sai tên người dùng: một số bản Linux dùng
ubuntu,debianhoặcalmalinuxthay vìroot; xem email bàn giao. - Máy chủ đã tắt đăng nhập bằng mật khẩu (
PasswordAuthentication no) hoặc chặn root (PermitRootLogin no). Trên Ubuntu, hãy xem cả các tệp trong/etc/ssh/sshd_config.d/vì chúng có thể ghi đè cấu hình chính. - Đăng nhập bằng khóa nhưng khóa công khai chưa có trong
~/.ssh/authorized_keystrên VPS.
“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!”
SSH lưu “dấu vân tay” của máy chủ ở lần kết nối đầu tiên. Nếu bạn cài lại hệ điều hành VPS, dấu vân tay thay đổi và SSH cảnh báo. Khi chắc chắn chính bạn vừa cài lại VPS, xóa dấu vân tay cũ:
ssh-keygen -R 203.0.113.10
# Nếu dùng cổng khác 22:
ssh-keygen -R "[203.0.113.10]:2222"
Nếu bạn không cài lại VPS mà vẫn thấy cảnh báo này, đừng bỏ qua – hãy liên hệ hỗ trợ để kiểm tra.
“Too many authentication failures”
Máy bạn có nhiều khóa SSH và thử lần lượt tất cả, vượt giới hạn số lần thử của máy chủ trước khi tới khóa đúng. Chỉ định đúng khóa cần dùng:
ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 [email protected]
“UNPROTECTED PRIVATE KEY FILE!”
Tệp khóa riêng có quyền truy cập quá rộng nên SSH từ chối dùng. Trên macOS, Linux:
chmod 600 ~/.ssh/id_ed25519
Trên VPS, thư mục và tệp khóa công khai cũng cần đúng quyền:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Bị fail2ban chặn IP
Nếu VPS cài fail2ban, gõ sai mật khẩu nhiều lần sẽ khiến IP của bạn bị chặn tạm thời – triệu chứng giống hệt “Connection timed out”. Vào VNC console hoặc kết nối từ mạng khác, rồi gỡ chặn:
fail2ban-client status sshd
fail2ban-client set sshd unbanip 198.51.100.25
Thay 198.51.100.25 bằng IP mạng của bạn.
Mẹo phòng tránh lỗi SSH
- Dùng khóa SSH thay cho mật khẩu.
- Trước khi sửa cấu hình SSH hoặc tường lửa, luôn giữ một phiên SSH đang mở để quay lại khi có sai sót.
- Chạy
sshd -tđể kiểm tra cấu hình trước mỗi lần khởi động lại dịch vụ SSH.
Câu hỏi thường gặp
Vì sao gõ mật khẩu SSH không thấy ký tự nào?
Đây là cơ chế bảo mật của Terminal: mật khẩu vẫn được nhập nhưng không hiển thị. Gõ xong nhấn Enter.
Connection refused khác gì Connection timed out?
Connection refused nghĩa là VPS phản hồi nhưng không có dịch vụ SSH ở cổng đó; Connection timed out nghĩa là không có phản hồi nào, thường do VPS tắt, sai IP hoặc tường lửa chặn.
Lỡ tự khóa mình khỏi SSH thì làm sao?
Dùng VNC console trong trang quản lý dịch vụ để đăng nhập trực tiếp vào VPS, sửa lại cấu hình SSH hoặc tường lửa. Nếu không tự xử lý được, gửi yêu cầu hỗ trợ.
Bình luận