Bài này hướng dẫn bật đăng nhập SSH bằng mật khẩu cho tài khoản root, và nói rõ cái giá phải trả khi bật.
1. ⚠️ Đọc trước khi bật
Hai thiết lập trong bài này là hai thiết lập khiến máy chủ bị chiếm nhiều nhất.
Một máy chủ mở cổng 22 ra Internet sẽ nhận hàng nghìn lượt thử mật khẩu mỗi ngày, hoàn toàn tự động, không cần ai nhắm vào quý Khách hàng cả. Bật cả hai thiết lập dưới đây nghĩa là chỉ còn một lớp duy nhất đứng giữa Internet và quyền cao nhất trên máy: mật khẩu root.
| Thiết lập | Rủi ro khi bật |
|---|---|
PasswordAuthentication yes |
Cho phép dò mật khẩu không giới hạn số lần thử |
PermitRootLogin yes |
Người dò chỉ cần đoán đúng một tài khoản, và tài khoản đó có toàn quyền |
Cách tốt hơn, và không khó hơn: dùng khoá SSH. Khoá SSH không dò được, không phải nhớ, và đăng nhập nhanh hơn. Xem bài Hướng dẫn tạo SSH key và sử dụng key để login vào VPS Linux trong cùng chuyên mục.
Vẫn cần bật mật khẩu thì hãy đọc hết mục 4 trước.
2. Khi nào thật sự cần bật
| Tình huống | Có cần không |
|---|---|
| Vừa nhận VPS, chưa kịp nạp khoá SSH | Có. Bật tạm, nạp khoá xong thì tắt lại |
| Nhà cung cấp vừa cài lại máy, chỉ cấp mật khẩu | Có, như trên |
| Phần mềm quản trị cũ chỉ hỗ trợ mật khẩu | Có, nhưng nên giới hạn địa chỉ IP được phép nối |
| Để tiện, khỏi phải mang khoá theo | Không. Đây là lý do hay gặp nhất, và là lý do tệ nhất |
3. Các bước bật
Bước 1: mở tệp cấu hình
nano /etc/ssh/sshd_config
Báo không tìm thấy nano thì cài trước:
apt-get install nano -y # Ubuntu, Debian
dnf install nano -y # AlmaLinux 9, Rocky 9
yum install nano -y # CentOS 7 và các bản cũ
Bước 2: sửa hai dòng
Tìm hai dòng dưới đây và đặt thành yes:
PermitRootLogin yes
PasswordAuthentication yes
Ba trường hợp hay gặp trong tệp:
| Thấy gì | Làm gì |
|---|---|
Dòng đang là no |
Sửa thành yes |
Dòng có dấu # ở đầu |
Xoá dấu # rồi sửa thành yes |
| Không có dòng nào như vậy | Thêm mới, đặt gần mục # Authentication |

⚠️ Một số bản Ubuntu còn ghi đè thiết lập này ở nơi khác. Nếu sửa xong mà vẫn không vào được, kiểm tiếp:
grep -rE "PermitRootLogin|PasswordAuthentication" /etc/ssh/sshd_config.d/
Dòng trong thư mục đó thắng dòng trong tệp chính.
Lưu lại: bấm Ctrl + O, Enter, rồi Ctrl + X để thoát.
Bước 3: kiểm cú pháp trước khi khởi động lại
sshd -t
Lệnh này không in gì nghĩa là cấu hình đúng. Đừng bỏ qua bước này. Cấu hình sai cú pháp làm dịch vụ SSH không khởi động lại được, và lúc đó quý Khách hàng mất luôn đường vào máy.
Bước 4: khởi động lại dịch vụ
systemctl restart ssh # Ubuntu, Debian
systemctl restart sshd # AlmaLinux, Rocky, CentOS
⚠️ Giữ nguyên phiên SSH đang mở, mở một cửa sổ mới để thử đăng nhập. Phiên đang mở không bị ngắt khi khởi động lại dịch vụ, nên nếu có sai sót thì vẫn còn đường sửa.
4. Bật rồi thì làm thêm bốn việc này
Bật xong mà không làm gì thêm thì chỉ còn chờ bị dò. Bốn việc dưới đây rẻ và hiệu quả:
| Việc | Vì sao |
|---|---|
| Đặt mật khẩu root dài | Độ dài mới làm việc dò khó lên nhiều lần. Tối thiểu 12 ký tự, càng dài càng tốt |
| Cài fail2ban | Tự chặn địa chỉ IP dò sai nhiều lần |
| Giới hạn địa chỉ IP được nối cổng 22 | Chỉ cho văn phòng hoặc một địa chỉ cố định. Đây là biện pháp mạnh nhất trong bảng |
| Đổi cổng SSH | Giảm hẳn lượng dò tự động. Xem bài Hướng dẫn đổi port SSH trong cùng chuyên mục |
Cài fail2ban:
apt-get install fail2ban -y && systemctl enable --now fail2ban # Ubuntu, Debian
dnf install epel-release -y && dnf install fail2ban -y && systemctl enable --now fail2ban # AlmaLinux, Rocky
Xem máy đang bị dò nhiều đến mức nào:
grep "Failed password" /var/log/auth.log | wc -l # Ubuntu, Debian
grep "Failed password" /var/log/secure | wc -l # AlmaLinux, Rocky, CentOS
Con số này thường làm người ta bất ngờ.
5. Tắt lại sau khi đã nạp khoá SSH
Nạp khoá xong, hãy tắt lại hai thiết lập trên. Đây là việc hay bị quên nhất, và quên nó thì mọi biện pháp khác chỉ còn một nửa tác dụng.
PermitRootLogin prohibit-password
PasswordAuthentication no
prohibit-password cho phép root vào bằng khoá nhưng chặn mật khẩu. Đây là giá trị nên dùng lâu dài.
Rồi sshd -t và khởi động lại dịch vụ như bước 3 và 4.
⚠️ Thử đăng nhập bằng khoá ở một cửa sổ mới TRƯỚC khi đóng phiên hiện tại. Tắt mật khẩu trong khi khoá chưa chạy là tự khoá mình ở ngoài.
6. Khi cần hỗ trợ
Nhắn qua khung chat ở góc phải màn hình kèm: hệ điều hành của VPS, và nguyên văn thông báo lỗi khi đăng nhập.
Nếu đã tự khoá mình ở ngoài, hãy nói rõ điều đó. Cloudzone vào được máy qua console và mở lại giúp quý Khách hàng.
Đừng gửi mật khẩu root qua chat. Đội ngũ kỹ thuật không cần nó để xử lý.