Hướng dẫn tạo SSH key và đăng nhập VPS không cần mật khẩu

Đăng nhập SSH bằng key an toàn hơn mật khẩu rất nhiều: khóa riêng nằm trên máy bạn, không thể bị đoán. Sau khi thiết lập, bạn kết nối VPS chỉ bằng một lệnh mà không cần gõ mật khẩu. Hướng dẫn dưới đây áp dụng cho mọi VPS Linux tại TrumVPS.

Bước 1: Tạo cặp khóa SSH trên máy tính

Trên Windows 10/11 (PowerShell), macOS hoặc Linux (Terminal), chạy:

ssh-keygen -t ed25519 -C "[email protected]"

Nhấn Enter để lưu ở vị trí mặc định. Nên đặt passphrase để bảo vệ khóa nếu máy tính bị mất. Kết quả gồm hai tệp:

  • id_ed25519 – khóa riêng, tuyệt đối không chia sẻ.
  • id_ed25519.pub – khóa công khai, đưa lên VPS.

Bước 2: Đưa khóa công khai lên VPS

Trên macOS, Linux

ssh-copy-id [email protected]

Trên Windows (PowerShell)

Windows không có sẵn ssh-copy-id, dùng lệnh sau thay thế:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Bước 3: Đăng nhập thử bằng khóa

ssh [email protected]

Nếu vào được VPS mà không bị hỏi mật khẩu (hoặc chỉ hỏi passphrase của khóa), bạn đã thiết lập thành công.

Bước 4: Tắt đăng nhập bằng mật khẩu

Giữ nguyên phiên SSH đang mở, mở tệp cấu hình:

nano /etc/ssh/sshd_config

Đặt các dòng sau (bỏ dấu # ở đầu nếu có):

PasswordAuthentication no
PermitRootLogin prohibit-password

Trên Ubuntu, kiểm tra thêm thư mục /etc/ssh/sshd_config.d/: nếu có tệp chứa PasswordAuthentication yes, hãy sửa thành no. Sau đó kiểm tra cấu hình và khởi động lại SSH:

sshd -t
systemctl restart ssh    # Ubuntu, Debian
systemctl restart sshd   # AlmaLinux, Rocky Linux

Mở một cửa sổ Terminal mới và đăng nhập thử. Chỉ đóng phiên cũ khi chắc chắn phiên mới vào được.

Dùng khóa SSH với PuTTY, Termius, MobaXterm

  • PuTTY dùng định dạng .ppk: mở PuTTYgen, chọn Load khóa id_ed25519 rồi Save private key.
  • Termius, MobaXterm nhập trực tiếp tệp id_ed25519.

Lưu ý quan trọng

  • Sao lưu khóa riêng ở nơi an toàn; mất khóa sau khi đã tắt mật khẩu thì chỉ vào được qua VNC console.
  • Mỗi thiết bị nên có khóa riêng để dễ thu hồi khi mất máy (xóa dòng tương ứng trong authorized_keys).
  • Kết hợp với các bước bảo mật VPS Linux cơ bản để VPS an toàn hơn.

Câu hỏi thường gặp

Nên dùng khóa RSA hay ed25519?

Nên dùng ed25519: khóa ngắn, nhanh và an toàn. Chỉ dùng RSA 4096 bit khi phần mềm cũ không hỗ trợ ed25519.

Mất khóa riêng thì làm sao vào VPS?

Đăng nhập qua VNC console trong trang quản lý dịch vụ, thêm khóa công khai mới vào ~/.ssh/authorized_keys hoặc tạm bật lại đăng nhập bằng mật khẩu.

Một khóa SSH dùng cho nhiều VPS được không?

Được. Bạn chỉ cần đưa cùng một khóa công khai lên từng VPS.

Bình luận

Để lại bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *