Đăng nhập VPS bằng SSH key: Hướng dẫn từ A đến Z
Tìm hiểu cách tạo SSH key, thêm khóa công khai lên VPS và kết nối từ Windows, macOS hoặc Linux. Bài viết cũng hướng dẫn kiểm tra cấu hình và tắt đăng nhập bằng mật khẩu an toàn.
- 8 phút đọc
- 2 lượt xem

Tìm hiểu cách tạo SSH key, thêm khóa công khai lên VPS và kết nối từ Windows, macOS hoặc Linux. Bài viết cũng hướng dẫn kiểm tra cấu hình và tắt đăng nhập bằng mật khẩu an toàn.

DNSSEC giúp trình phân giải xác thực dữ liệu DNS, giảm nguy cơ người dùng bị dẫn đến địa chỉ giả mạo. Tìm hiểu cơ chế hoạt động, giới hạn và các bước bật DNSSEC cho tên miền.
Khởi tạo tự động ngay sau khi thanh toán, chuyển khoản bằng mã QR, bật tắt và cài lại máy chủ trong trang quản lý.
CÔNG TY TNHH CÔNG NGHỆ INUX
Khi quản trị VPS qua SSH, bạn thường đăng nhập bằng tên người dùng và mật khẩu. Cách này dễ bắt đầu nhưng mật khẩu có thể bị đoán, lộ hoặc sử dụng lại ở nhiều nơi. SSH key là phương thức xác thực dựa trên một cặp khóa, giúp bạn đăng nhập VPS bằng SSH key mà không phải nhập mật khẩu tài khoản máy chủ mỗi lần kết nối.
Trong hướng dẫn này, bạn sẽ tạo cặp khóa trên máy cá nhân, cài khóa công khai lên VPS, thử kết nối rồi mới cân nhắc tắt xác thực bằng mật khẩu. Các bước áp dụng cho máy Linux, macOS và Windows có OpenSSH; một số lệnh hoặc đường dẫn có thể khác đôi chút tùy hệ điều hành và bản phân phối Linux.

SSH key gồm hai phần: private key (khóa riêng) và public key (khóa công khai). Private key được giữ trên máy của bạn, còn public key được thêm vào tài khoản trên VPS. Khi kết nối, máy khách SSH dùng private key để chứng minh danh tính; máy chủ kiểm tra bằng public key tương ứng.
Hãy hình dung public key như ổ khóa được gắn lên cửa VPS, còn private key là chìa khóa bạn cần giữ. Hai khóa có liên quan về mặt mật mã nhưng không thể thay thế cho nhau trong quy trình đăng nhập thông thường. Bạn có thể chia sẻ public key để cài đặt, nhưng tuyệt đối không gửi private key cho người khác hoặc đăng lên kho mã nguồn công khai.
SSH key giúp giảm phụ thuộc vào mật khẩu đăng nhập máy chủ và có thể kết hợp với passphrase để bảo vệ khóa riêng. Tuy nhiên, đây không phải giải pháp thay thế mọi lớp bảo mật: bạn vẫn cần bảo vệ thiết bị cá nhân, cập nhật máy chủ và cấp quyền truy cập phù hợp. Mật khẩu sudo hoặc mật khẩu của ứng dụng trên VPS cũng không tự biến mất khi bạn dùng SSH key.

Trước tiên, mở Terminal trên macOS hoặc Linux. Trên Windows, mở PowerShell hoặc Windows Terminal. Kiểm tra máy đã có OpenSSH bằng lệnh ssh -V. Nếu hệ thống nhận diện lệnh và hiện phiên bản, bạn có thể tiếp tục.
Tạo khóa Ed25519 bằng lệnh:
ssh-keygen -t ed25519 -C "ten-may-ca-nhan"Tham số -t ed25519 chọn loại khóa; phần sau -C là chú thích giúp bạn nhận biết khóa, chẳng hạn tên máy hoặc mục đích sử dụng. Nếu hệ thống hoặc máy chủ của bạn không hỗ trợ Ed25519, hãy kiểm tra cấu hình tương thích và cân nhắc tạo khóa RSA theo chính sách bảo mật phù hợp.
Khi được hỏi nơi lưu khóa, bạn có thể nhấn Enter để dùng đường dẫn mặc định. Trên Linux và macOS, cặp khóa thường được lưu trong thư mục ~/.ssh/; trên Windows, thư mục mặc định nằm trong hồ sơ người dùng. Nếu đã có khóa cùng tên, đừng ghi đè trước khi xác nhận khóa cũ không còn được dùng.
Tiếp theo, hệ thống hỏi passphrase. Đây là cụm mật khẩu bảo vệ private key trên máy tính, không phải mật khẩu đăng nhập VPS. Nên đặt passphrase đủ khó đoán; bạn có thể cần nhập lại khi sử dụng khóa, trừ khi cấu hình trình quản lý khóa để lưu trong phiên làm việc. Nếu bỏ trống, private key không được bảo vệ bằng passphrase, vì vậy việc giữ an toàn thiết bị càng quan trọng.
Sau khi tạo, bạn sẽ thấy hai tệp thường có tên như id_ed25519 và id_ed25519.pub. Tệp không có đuôi .pub là private key; tệp .pub là public key. Không sao chép nội dung private key vào VPS. Nếu muốn kiểm tra public key, dùng lệnh cat ~/.ssh/id_ed25519.pub trên Linux/macOS; trên PowerShell, dùng Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub.
Bạn cần có một phiên truy cập VPS đang hoạt động, thông tin địa chỉ IP hoặc tên miền, tên tài khoản và quyền phù hợp để thêm khóa. Nếu nhà cung cấp có bảng điều khiển hỗ trợ cài SSH key khi khởi tạo máy chủ, bạn có thể thêm nội dung public key tại đó. Cách này thuận tiện khi thiết lập VPS mới.
Với máy đã hoạt động, cách phổ biến trên Linux hoặc macOS là dùng ssh-copy-id:
ssh-copy-id -i ~/.ssh/id_ed25519.pub ten_user@dia_chi_vpsThay ten_user bằng tài khoản trên máy chủ và dia_chi_vps bằng IP hoặc tên miền. Lệnh có thể yêu cầu mật khẩu hiện tại để chép public key vào tệp ~/.ssh/authorized_keys của tài khoản đích. Nếu VPS dùng cổng SSH khác cổng mặc định, tham khảo tùy chọn cổng của ssh-copy-id hoặc cấu hình theo hướng dẫn của hệ điều hành.
Nếu máy không có ssh-copy-id, bạn có thể cài thủ công. Đăng nhập VPS bằng phương thức hiện tại, tạo thư mục .ssh nếu chưa có, rồi thêm nguyên dòng public key vào cuối tệp ~/.ssh/authorized_keys của đúng tài khoản. Mỗi khóa nên nằm trên một dòng riêng. Trên Linux, quyền thư mục thường được đặt bằng chmod 700 ~/.ssh và quyền tệp bằng chmod 600 ~/.ssh/authorized_keys; quyền sở hữu phải thuộc về tài khoản đang đăng nhập. Quyền sai có thể khiến SSH từ chối khóa.
Trên Windows, bạn có thể dùng ssh-copy-id nếu đã cài công cụ tương thích, hoặc đăng nhập VPS để thêm public key thủ công như trên. Hãy kiểm tra kỹ tài khoản đích và tránh dán nhầm private key. Nếu thao tác với tài khoản quản trị, chỉ cấp quyền cần thiết và lưu lại thông tin kết nối ở nơi an toàn.
Sau khi public key được cài, mở một cửa sổ Terminal mới và thử kết nối:
ssh ten_user@dia_chi_vpsNếu khóa nằm ở vị trí mặc định và chỉ có một khóa phù hợp, SSH thường tự tìm khóa để xác thực. Khi được hỏi, nhập passphrase của private key nếu bạn đã đặt. Đây không phải mật khẩu của tài khoản VPS. Nếu kết nối thành công, bạn đã đăng nhập bằng SSH key.
Trường hợp có nhiều khóa hoặc khóa lưu ở vị trí khác, chỉ định tệp cần dùng:
ssh -i ~/.ssh/id_ed25519 ten_user@dia_chi_vpsNếu VPS sử dụng cổng SSH tùy chỉnh, thêm tham số -p, ví dụ ssh -p 2222 ten_user@dia_chi_vps. Có thể tạo cấu hình trong ~/.ssh/config để khỏi gõ lại thông tin:
Host vps-cua-toi
HostName dia_chi_vps
User ten_user
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yesSau khi lưu, kết nối bằng ssh vps-cua-toi. Trên Windows, đường dẫn đến khóa trong cấu hình cần phù hợp với vị trí lưu trên máy. Không dùng cấu hình này để chia sẻ private key; mỗi người quản trị nên có khóa riêng để dễ thu hồi quyền khi cần.

Chỉ tắt xác thực bằng mật khẩu sau khi đã đăng nhập thành công bằng SSH key trong một phiên mới. Giữ nguyên phiên quản trị đang mở trong lúc thay đổi cấu hình. Nếu cấu hình sai, phiên hiện tại có thể giúp bạn sửa mà không phải tìm cách khôi phục quyền truy cập từ bên ngoài.
Trên nhiều bản Linux, cấu hình máy chủ SSH nằm tại /etc/ssh/sshd_config, nhưng một số hệ điều hành còn sử dụng các tệp cấu hình bổ sung. Sao lưu tệp trước khi chỉnh sửa, sau đó kiểm tra các chỉ thị liên quan. Cấu hình thường cần có PubkeyAuthentication yes và PasswordAuthentication no. Nếu có dòng bị đặt dấu #, hãy xác định quy tắc cấu hình thực tế trước khi thêm hoặc thay đổi giá trị; không nên chép cấu hình mẫu một cách máy móc.
Kiểm tra cú pháp cấu hình trước khi tải lại dịch vụ bằng sudo sshd -t. Nếu lệnh báo lỗi, sửa lỗi rồi kiểm tra lại. Khi cú pháp hợp lệ, tải lại dịch vụ SSH bằng lệnh phù hợp với bản phân phối, chẳng hạn sudo systemctl reload ssh hoặc sudo systemctl reload sshd. Tên dịch vụ có thể khác nhau; nếu không chắc, tra cứu tài liệu của hệ điều hành.
Mở một cửa sổ Terminal khác và thử đăng nhập lại bằng key. Chỉ sau khi xác nhận phiên mới hoạt động, hãy đóng phiên cũ. Nếu bạn đang quản trị VPS từ xa, hãy đảm bảo còn phương thức truy cập khẩn cấp như console quản lý của nhà cung cấp trước khi áp dụng thay đổi ảnh hưởng đến đăng nhập.
Nếu SSH vẫn hỏi mật khẩu tài khoản, hãy kiểm tra bạn đã cài đúng public key cho đúng tên người dùng chưa, khóa có được chỉ định chính xác không và quyền của thư mục, tệp có phù hợp không. Dùng chế độ gỡ lỗi ssh -v ten_user@dia_chi_vps để xem máy khách đang thử khóa nào; không chia sẻ đầu ra nếu trong đó có thông tin nhạy cảm.
Nếu nhận thông báo Permission denied (publickey), kiểm tra lại nội dung authorized_keys, quyền sở hữu, quyền truy cập và cấu hình SSH. Nếu hệ thống báo không tìm thấy tệp khóa, xác nhận đường dẫn trong tham số -i hoặc cấu hình SSH. Khi dùng passphrase, nhập passphrase của private key; nhập mật khẩu VPS ở bước này sẽ không giải quyết được lỗi khóa không khớp.
Để tăng bảo mật SSH, hãy giữ private key trong thiết bị cá nhân, đặt passphrase, không gửi khóa qua email hoặc ứng dụng trò chuyện và thu hồi public key cũ khi không còn sử dụng. Mỗi quản trị viên nên có cặp khóa riêng; khi một người rời dự án, bạn có thể xóa khóa tương ứng khỏi authorized_keys mà không ảnh hưởng khóa của người khác. Sao lưu private key nếu cần, nhưng chỉ lưu trong nơi được bảo vệ và kiểm soát quyền truy cập.
SSH key giúp quy trình đăng nhập tiện lợi và giảm việc dựa vào mật khẩu tài khoản máy chủ, nhưng không thay thế việc cập nhật hệ điều hành, giới hạn tài khoản và giám sát truy cập. Nếu đang tìm VPS để triển khai công việc, VibeVPS có các gói VPS AMD EPYC Gen 3 và VPS Platinum Gen 2 từ 81.000đ/tháng. Bạn có thể tham khảo cấu hình phù hợp, sau đó áp dụng SSH key để quản trị máy chủ chủ động hơn.