BizMaC bizmac.com

Tạo và cấp quyền SSH key thay mật khẩu

Hướng dẫn Linux Server · cập nhật 30/07/2026

Để dùng khoá SSH thay mật khẩu, bạn tạo cặp khoá bằng ssh-keygen, chép khoá công khai lên VPS, rồi đăng nhập không cần gõ mật khẩu. Sau đó tắt đăng nhập bằng mật khẩu để chỉ khoá mới vào được. Việc này mất khoảng 15 phút.

Khoá SSH là một cặp gồm khoá riêng giữ trên máy bạn và khoá công khai đặt trên VPS. Chúng khớp nhau mới cho vào, nên không ai dò được như mật khẩu. Nhiều tài liệu bảo mật xem đây là cách đăng nhập SSH an toàn hơn hẳn dùng mật khẩu.

  1. Tạo cặp khoá trên máy của bạn.
  2. Chép khoá công khai lên VPS.
  3. Đăng nhập thử bằng khoá.
  4. Tắt đăng nhập bằng mật khẩu.

Khoá riêng và khoá công khai khác nhau ra sao

Cặp khoá SSH gồm hai file sinh ra cùng lúc. Khoá riêng nằm trên máy bạn và tuyệt đối không chia sẻ cho ai. Khoá công khai đặt trên VPS, ai xem cũng được. Khi kết nối, VPS dùng khoá công khai để thách đố, chỉ máy giữ khoá riêng đúng mới trả lời được, và được cho vào.

KhoáĐặt ở đâuChia sẻ được không
Khoá riêng id_ed25519Máy của bạnKhông bao giờ
Khoá công khai id_ed25519.pubTrên VPSĐược, không hại gì
Mất khoá riêng là mất chìa vào VPS, và nếu để lộ thì người khác vào được. Sao lưu khoá riêng ở nơi an toàn và đặt mật khẩu bảo vệ khoá khi ssh-keygen hỏi passphrase. Đừng gửi khoá riêng qua email hay chat.

Tạo cặp khoá bằng ssh-keygen

Trên máy Linux hoặc macOS, mở terminal và chạy ssh-keygen. Trên Windows, dùng PuTTYgen đi kèm PuTTY. Loại khoá nên chọn là ed25519 vì ngắn gọn và mạnh. Lệnh sẽ hỏi nơi lưu và passphrase, bạn có thể Enter để nhận mặc định hoặc đặt passphrase cho an toàn hơn.

ssh-keygen -t ed25519 -C "email-cua-ban"

Sau khi chạy xong, hai file xuất hiện trong thư mục ~/.ssh: id_ed25519 là khoá riêng và id_ed25519.pub là khoá công khai. Bạn chỉ cần chép file .pub lên VPS.

Chép khoá công khai lên VPS

Cách nhanh nhất là dùng lệnh ssh-copy-id. Nó tự chép khoá công khai vào đúng chỗ trên VPS và đặt quyền chuẩn. Lệnh này hỏi mật khẩu VPS lần cuối, sau đó bạn dùng khoá là xong. Nếu máy không có ssh-copy-id, bạn chép thủ công vào file authorized_keys.

ssh-copy-id [email protected]

Nếu VPS đã đổi cổng SSH, thêm cổng vào lệnh:

ssh-copy-id -p 2222 [email protected]

Đăng nhập thử bằng khoá trước khi tắt mật khẩu

Trước khi tắt đăng nhập bằng mật khẩu, phải chắc chắn khoá đã hoạt động. Mở một phiên SSH mới và đăng nhập. Nếu vào thẳng không hỏi mật khẩu VPS, hoặc chỉ hỏi passphrase của khoá, nghĩa là khoá đã đúng. Đừng bỏ qua bước kiểm tra này.

ssh [email protected]

Tắt đăng nhập bằng mật khẩu cho an toàn

Khi khoá đã vào được, bạn tắt đăng nhập bằng mật khẩu để chặn mọi lượt dò. Mở file /etc/ssh/sshd_config, đổi hai dòng liên quan, rồi khởi động lại SSH. Từ đó chỉ máy có khoá riêng đúng mới vào được, dù kẻ tấn công có đoán trúng mật khẩu cũng vô ích.

sudo nano /etc/ssh/sshd_config

Tìm và sửa hai dòng sau thành no:

PasswordAuthentication no
PermitRootLogin prohibit-password
sudo systemctl restart sshd
Chỉ tắt đăng nhập mật khẩu SAU khi đã đăng nhập được bằng khoá ở một phiên riêng. Giữ phiên SSH cũ mở trong lúc thử phiên mới. Tắt mật khẩu mà khoá chưa hoạt động là tự khoá mình ra ngoài, phải vào console để cứu.

Việc nên nhớ khi dùng nhiều máy

Nếu bạn quản trị từ nhiều máy tính, mỗi máy cần khoá riêng của nó, và bạn chép tất cả khoá công khai lên VPS. Đừng chép chung một khoá riêng qua nhiều máy. Khi cần thu hồi quyền của một máy, chỉ việc xoá dòng khoá công khai của máy đó trong file authorized_keys.

Khoá SSH kết hợp với đổi cổng và Fail2Ban tạo thành lớp bảo vệ vững cho VPS. Trong ba việc đó, dùng khoá là hiệu quả nhất, vì nó loại bỏ hoàn toàn rủi ro bị dò mật khẩu ngay từ gốc.

Hướng dẫn này có giúp được Anh/Chị không?

Bài khác trong Linux Server

Xem cả 22 bài
Cài tường lửa UFW cơ bản cho VPS Ubuntu Cách cài UFW trên Ubuntu, cho phép cổng SSH trước khi bật, mở cổng web 80 và 443, rồi kích hoạt tường lửa mà không mất kết nối cho người mới quản trị VPS. 5 phút đọc Cập nhật 29/08/2026 Đổi port SSH mặc định để bảo mật VPS Cách đổi cổng SSH từ 22 sang cổng khác trong file sshd_config, mở cổng mới trên tường lửa trước khi khởi động lại dịch vụ, và kiểm tra kết nối cho người mới. 5 phút đọc Cập nhật 28/08/2026 Cài Fail2Ban chống dò mật khẩu SSH Cách cài Fail2Ban trên Ubuntu và CentOS, tạo file cấu hình jail.local, đặt số lần sai và thời gian khoá IP, rồi kiểm tra danh sách IP đang bị chặn. 5 phút đọc Cập nhật 28/08/2026 Phân quyền file thư mục bằng chmod và chown Cách đọc dãy quyền rwx, dùng chmod đổi quyền theo số và chown đổi chủ sở hữu file trên Linux, kèm bảng số quyền hay dùng và cảnh báo chmod 777. 5 phút đọc Cập nhật 27/08/2026 15 lệnh Linux cơ bản cho người mới quản trị VPS Bảng tra 15 lệnh Linux thiết yếu để đi lại trong thư mục, xem và sửa file, kiểm tra tài nguyên và quản lý dịch vụ trên VPS, kèm ví dụ cho người mới. 5 phút đọc Cập nhật 26/08/2026 Kết nối VPS Linux bằng SSH với PuTTY Cách tải PuTTY, nhập IP và cổng, lưu session để lần sau vào nhanh, và đăng nhập VPS Linux lần đầu bằng tài khoản root cho người mới quản trị. 7 phút đọc Cập nhật 25/08/2026

Làm theo vẫn chưa được?

Gửi yêu cầu hỗ trợ, kỹ thuật xem trực tiếp trên dịch vụ của Anh/Chị.

Gửi yêu cầu hỗ trợ