SSH key và cách bảo mật SSH cho máy chủ của bạn

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

Ngay khi bạn thuê một máy chủ ảo (VPS), đã có những chương trình tự động thử đoán mật khẩu đăng nhập SSH liên tục. Cách phòng thủ cơ bản và hiệu quả nhất là dùng SSH key thay cho mật khẩu. Bài này hướng dẫn từ tạo khóa đến siết chặt cấu hình.

SSH key hoạt động thế nào?

SSH key là một cặp khóa:

  • Khóa riêng (private key): nằm trên máy của bạn, tuyệt đối không chia sẻ.
  • Khóa công khai (public key): đặt trên máy chủ, chia sẻ thoải mái.

Khi kết nối, máy chủ dùng khóa công khai để thử thách máy bạn, và chỉ ai có khóa riêng tương ứng mới trả lời đúng. Mật khẩu không bao giờ phải gửi qua mạng.

Bước 1: tạo cặp khóa

ssh-keygen -t ed25519 -C 'laptop-cua-toi'

Ed25519 là thuật toán hiện đại, khóa ngắn và được hỗ trợ rộng rãi. Khi được hỏi, hãy đặt passphrase để bảo vệ khóa riêng phòng khi laptop bị mất. Mặc định khóa được lưu ở thư mục ~/.ssh/: file id_ed25519 là khóa riêng, id_ed25519.pub là khóa công khai.

Bước 2: đưa khóa công khai lên máy chủ

ssh-copy-id nguoidung@dia-chi-may-chu

Lệnh này chép khóa công khai vào file ~/.ssh/authorized_keys trên máy chủ. Sau đó bạn đăng nhập bằng ssh nguoidung@dia-chi-may-chu mà không cần gõ mật khẩu tài khoản. Nếu máy không có ssh-copy-id, bạn có thể dán nội dung file .pub vào authorized_keys bằng tay.

Bước 3: siết chặt cấu hình SSH

Sau khi chắc chắn đăng nhập bằng khóa được, mở file /etc/ssh/sshd_config và cân nhắc các thiết lập:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Ý nghĩa: tắt đăng nhập bằng mật khẩu, cấm đăng nhập trực tiếp bằng root, bật xác thực bằng khóa, và giới hạn số lần thử. Sau đó khởi động lại dịch vụ SSH (tên dịch vụ có thể là ssh hoặc sshd tùy bản phân phối).

Quan trọng: đừng đóng phiên SSH đang mở khi sửa cấu hình. Hãy mở một cửa sổ mới để thử đăng nhập trước. Nếu cấu hình sai, bạn vẫn còn phiên cũ để sửa, tránh tự khóa mình ngoài máy chủ.

Tạo người dùng riêng thay vì dùng root

adduser deploy
usermod -aG sudo deploy

Dùng tài khoản thường kèm sudo cho công việc hàng ngày. Root có quyền vô hạn nên một sai sót nhỏ cũng có thể gây hậu quả lớn.

File cấu hình ~/.ssh/config cho tiện

Host may-chu-web
  HostName 203.0.113.10
  User deploy
  IdentityFile ~/.ssh/id_ed25519

Từ đó bạn chỉ cần gõ ssh may-chu-web. Địa chỉ trong ví dụ là địa chỉ dùng cho tài liệu, bạn thay bằng địa chỉ máy chủ của mình.

Các biện pháp bổ sung

  1. Tường lửa: chỉ mở các cổng cần thiết, ví dụ SSH, HTTP và HTTPS.
  2. Fail2ban hoặc công cụ tương tự: tự chặn địa chỉ thử sai nhiều lần.
  3. Đổi cổng SSH: chỉ giúp giảm nhiễu trong log, không phải biện pháp bảo mật thực sự.
  4. Cập nhật hệ thống thường xuyên.
  5. Dùng khóa riêng cho từng máy tính, để thu hồi dễ dàng khi mất một thiết bị.

Những điều không được làm

  • Không gửi khóa riêng qua chat hay email, không commit lên Git.
  • Không dùng chung một khóa cho cả nhóm.
  • Không bỏ passphrase trên máy dùng chung.

Kết luận

Chỉ với vài lệnh, bạn đã biến máy chủ từ mục tiêu dễ dàng thành mục tiêu khó nhằn: dùng khóa Ed25519, tắt mật khẩu, tắt đăng nhập root và giữ một phiên dự phòng khi chỉnh cấu hình. Đây là bài đầu tiên nên làm với mọi VPS mới.

Muốn thực hành thiết lập máy chủ từ đầu đến khi chạy được website, bạn có thể tham khảo các khóa học tại codebem.com.

author_photo
Nguyễn Đình Cường

0 comment