Premium Base
- 2 vCore Intel Xeon Scalable
- 2 GB RAM
- 30 GB NVMe U.2
- Network: 300 Mbps
Premium Base
- 3 vCore Intel Xeon
- 3 GB RAM
- 30 GB SSD NVMe U.2
- Network: 300 Mbps
Premium Pro
- 6 vCore Intel Xeon Scalable
- 8 GB RAM
- 80 GB SSD NVMe U.2
- Network: 350 Mbps
Cloud-Day - Base
- Tặng 80 GB S3 và 1 NĂM SỬ DỤNG khi mua 2 năm trở lên
- 4 vCPU AMD EPYC
- 6 GB RAM
- 60 GB SSD NVMe U.2
- Network: 10 Gbps
Phương pháp tạo SSH key chính là lá chắn thép giúp bạn bảo vệ máy chủ Linux khỏi các cuộc tấn công dò tìm mật khẩu tự động đang diễn ra hàng giờ trên môi trường mạng. Sử dụng khóa bảo mật thay cho mật khẩu truyền thống không chỉ rút ngắn thời gian kết nối mà còn ngăn chặn triệt để nguy cơ lộ lọt thông tin quản trị tài nguyên của hệ thống. Hãy cùng hạ tầng máy chủ hiệu năng cao của InterData thiết lập giải pháp xác thực tối ưu này ngay trong bài hướng dẫn thực chiến dưới đây.
MỤC LỤC CHI TIẾT BÀI VIẾT
- 1. SSH Key là gì và cơ chế mã hóa bất đối xứng hoạt động ra sao?
- 2. Rủi to từ việc đăng nhập VPS bằng mật khẩu truyền thống
- 3. Hướng dẫn khởi tạo SSH Key bằng thuật toán Ed25519 bảo mật cao
- 4. Quy trình chuyển Public Key lên VPS để xác thực không cần mật khẩu
- 5. Vô hiệu hóa mật khẩu và cấu hình tệp tin sshd_config an toàn
- 6. Tối ưu hóa quy trình làm việc với SSH Agent và tệp cấu hình cục bộ
- 7. Tích hợp SSH Key vào GitHub hỗ trợ tự động hóa Deploy
- 8. Bảng chẩn đoán và khắc phục sự cố kết nối SSH Key nhanh chóng
1. SSH Key là gì và cơ chế mã hóa bất đối xứng hoạt động ra sao?
SSH Key là một phương thức xác thực danh tính người dùng thay thế cho mật khẩu thông thường khi kết nối với máy chủ Linux. Công nghệ này hoạt động dựa trên nền tảng mật mã học bất đối xứng, sử dụng một cặp khóa có mối liên hệ toán học chặt chẽ với nhau để xác nhận quyền truy cập hệ thống.
Khác với phương pháp nhập mật khẩu truyền thống dễ bị rò rỉ, cơ chế này chia cấu trúc khóa làm hai thành phần biệt lập:
- Khóa bí mật (Private Key): Tệp tin này được lưu trữ cực kỳ cẩn thận trên máy tính cá nhân của bạn. Không bao giờ được chia sẻ Private Key cho bất kỳ ai hoặc tải lên mạng Internet. Nó hoạt động như một chiếc chìa khóa vạn năng duy nhất để giải mã dữ liệu xác thực từ máy chủ.
- Khóa công khai (Public Key): Khóa này được tải trực tiếp lên máy chủ đích và lưu trong tệp tin cấu hình cá nhân của tài khoản muốn kết nối. Bất kỳ ai cũng có thể nhìn thấy chuỗi ký tự này mà không ảnh hưởng tới an toàn hệ thống, nó đóng vai trò như một ổ khóa thông minh chỉ mở ra khi nhận đúng tín hiệu mã hóa từ Private Key tương ứng.
Khi bạn thực hiện lệnh kết nối, máy chủ sẽ tạo ra một thử thách toán học ngẫu nhiên, mã hóa thử thách đó bằng Public Key rồi gửi ngược lại cho máy tính của bạn. Chỉ có Private Key nằm trên máy tính cá nhân của bạn mới có đủ khả năng giải mã thành công thử thách này để gửi kết quả xác nhận về cho máy chủ. Toàn bộ quá trình diễn ra hoàn toàn tự động chỉ trong vài mili giây mà không cần truyền tải bất kỳ thông tin nhạy cảm nào qua đường truyền internet.

2. Rủi ro từ việc đăng nhập VPS bằng mật khẩu truyền thống
Sử dụng mật khẩu quản trị là kẽ hở lớn nhất khiến máy chủ của bạn lọt vào tầm ngắm của hacker. Các mạng lưới máy tính ma (botnet) quét liên tục trên dải địa chỉ IP toàn cầu để tìm kiếm các cổng SSH mở sẵn và thực hiện hàng nghìn lượt thử mật khẩu tự động mỗi phút.
Nếu bạn vẫn đang duy trì thói quen truy cập bằng mật khẩu, hệ thống đang phải đối mặt với những rủi ro cực kỳ nghiêm trọng sau:
- Tấn công vét cạn (Brute Force Attack): Kẻ tấn công sử dụng các từ điển chứa hàng triệu mật khẩu phổ biến kết hợp với năng lượng tính toán lớn để dò quét. Chỉ cần mật khẩu của bạn có độ phức tạp trung bình, việc bị bẻ khóa chỉ còn là vấn đề thời gian.
- Lãng phí tài nguyên hệ thống: Mỗi lượt kết nối thử của botnet sẽ kích hoạt một tiến trình xác thực trên Linux. Điều này khiến CPU và dung lượng RAM của VPS bị chiếm dụng vô ích, dẫn đến tình trạng máy chủ hoạt động chậm chạp hoặc thậm chí treo dịch vụ dù không có lượt truy cập thực tế từ người dùng.
- Nguy cơ nghe lén dữ liệu (Man-in-the-Middle): Trong môi trường mạng công cộng không an toàn, mật khẩu của bạn có thể bị chụp lại qua các kỹ thuật đánh chặn gói tin, tạo cơ hội cho kẻ xấu chiếm quyền điều khiển cao nhất (root) của máy chủ.
3. Hướng dẫn khởi tạo SSH Key bằng thuật toán Ed25519 bảo mật cao
Hiện nay, thuật toán mã hóa đường cong Elliptic Ed25519 đang là tiêu chuẩn công nghệ tối ưu nhất, vượt trội hoàn toàn so với chuẩn RSA truyền thống về cả độ an toàn lẫn tốc độ xử lý mã hóa. Các khóa Ed25519 có kích thước nhỏ gọn nhưng mang lại mức độ bảo mật tương đương với khóa RSA 3072-bit, giúp tiến trình bắt tay kết nối SSH diễn ra nhanh hơn.

Để bắt đầu tiến trình sinh khóa, hãy mở ứng dụng Terminal (trên Linux/macOS) hoặc PowerShell (trên Windows 10/11) và nhập dòng lệnh sau:
ssh-keygen -t ed25519 -C "[email protected]"
Ngay khi nhấn Enter, chương trình sẽ hiển thị các yêu cầu tương tác trực tiếp trên màn hình:
Các bước tương tác trong quá trình sinh khóa:
- Xác định đường dẫn lưu trữ: Hệ thống sẽ hỏi
Enter file in which to save the key.... Nếu muốn sử dụng vị trí mặc định nằm trong thư mục người dùng của bạn, chỉ cần nhấn Enter. - Cài đặt cụm mật khẩu bảo vệ (Passphrase): Màn hình hiển thị
Enter passphrase (empty for no passphrase):. Đây là mật khẩu dùng để mã hóa chính Private Key của bạn trên ổ cứng cục bộ. Nếu bạn nhập cụm mật khẩu này, mỗi lần sử dụng SSH Key để kết nối, bạn sẽ cần gõ mật khẩu này để mở khóa chìa. Điều này đảm bảo an toàn tuyệt đối ngay cả khi máy tính cá nhân của bạn bị mất hoặc bị xâm nhập. Để trống và nhấn Enter nếu bạn muốn tự động kết nối nhanh chóng mà không cần nhập thêm bất cứ ký tự nào. - Xác nhận lại cụm mật khẩu: Nhập lại mật khẩu giống hệt ở bước trên hoặc tiếp tục nhấn Enter để hoàn tất quy trình.
Sau khi hoàn tất, màn hình sẽ in ra một mã sơ đồ trực quan (Randomart image) cùng thông báo hai tệp tin khóa đã được khởi tạo thành công tại thư mục ẩn của tài khoản:
~/.ssh/id_ed25519(đối với Private Key dùng để lưu trữ cục bộ bảo mật).~/.ssh/id_ed25519.pub(đối với Public Key dùng để đưa lên máy chủ).
4. Quy trình chuyển Public Key lên VPS để xác thực không cần mật khẩu
Sau khi đã có cặp khóa, bạn cần chuyển nội dung tệp tin Public Key (.pub) lên hệ thống VPS để máy chủ nhận diện thiết bị của bạn trong những lần kết nối sau. Có hai cách thực hiện việc này, tùy thuộc vào hệ điều hành bạn đang sử dụng trên máy tính của mình.
Phương án 1: Sử dụng công cụ tự động ssh-copy-id (Áp dụng cho Linux và macOS)
Đây là giải pháp nhanh gọn nhất, tự động thiết lập mọi quyền hạn thư mục cần thiết trên máy chủ đích. Hãy nhập lệnh sau trên máy tính cá nhân:
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]
Hãy thay thế root bằng tài khoản quản trị của bạn và 123.45.67.89 bằng địa chỉ IP chính xác của VPS. Hệ thống sẽ yêu cầu bạn nhập mật khẩu truy cập của tài khoản root một lần duy nhất để hoàn tất việc sao chép khóa vào vị trí an toàn.
Phương án 2: Đưa khóa lên thủ công (Áp dụng cho mọi hệ điều hành bao gồm Windows)
Nếu bạn dùng Windows PowerShell chưa tích hợp sẵn lệnh tự động, hãy đăng nhập vào VPS bằng mật khẩu bình thường và tự tay cấu hình theo các bước chuẩn kỹ thuật sau để đảm bảo không gặp lỗi phân quyền truy cập:
# 1. Tạo thư mục cấu hình SSH bí mật nếu chưa tồn tại mkdir -p ~/.ssh # 2. Phân quyền truy cập an toàn cho thư mục vừa tạo (Chỉ chủ sở hữu được đọc/ghi) chmod 700 ~/.ssh # 3. Tạo tệp tin authorized_keys chứa danh sách khóa được phép đăng nhập touch ~/.ssh/authorized_keys # 4. Phân quyền tối thiểu cho tệp authorized_keys (Bắt buộc để dịch vụ SSH chấp nhận) chmod 600 ~/.ssh/authorized_keys
Kế tiếp, hãy mở tệp tin ~/.ssh/id_ed25519.pub trên máy tính cá nhân bằng bất kỳ trình soạn thảo văn bản nào (như Notepad hoặc VS Code), sao chép toàn bộ chuỗi văn bản dài bắt đầu bằng ssh-ed25519.... Cuối cùng, dán dòng nội dung đó vào cuối tệp tin ~/.ssh/authorized_keys trên máy chủ VPS bằng lệnh sửa văn bản nano ~/.ssh/authorized_keys và lưu lại.
5. Vô hiệu hóa mật khẩu và cấu hình tệp tin sshd_config an toàn
Tạo khóa SSH thành công mới chỉ là bước đầu tiên. Để thực sự đóng chặt mọi cánh cửa trước các đợt rà quét tự động của hacker, bạn buộc phải vô hiệu hóa hoàn toàn tính năng đăng nhập bằng mật khẩu trên tệp cấu hình trung tâm của dịch vụ SSH.
Hãy kết nối vào VPS của bạn và tiến hành chỉnh sửa tệp tin cấu hình bằng trình soạn thảo Nano:
sudo nano /etc/ssh/sshd_config
Tìm kiếm các từ khóa tương ứng trong nội dung tệp tin và thiết lập giá trị chuẩn xác giống như mô tả bên dưới (nếu dòng nào có dấu thăng # ở đầu, hãy xóa nó đi để kích hoạt cấu hình):
# Kích hoạt tính năng xác thực bằng khóa công khai PubkeyAuthentication yes # Chặn hoàn toàn đăng nhập bằng mật khẩu thông thường PasswordAuthentication no # Ngăn đăng nhập trực tiếp tài khoản root bằng mật khẩu (chỉ cho phép qua SSH Key) PermitRootLogin prohibit-password
Sau khi thay đổi, nhấn tổ hợp phím Ctrl + O rồi Enter để ghi tệp, sau đó dùng Ctrl + X để thoát khỏi trình soạn thảo. Khởi động lại dịch vụ SSH để các thiết lập mới chính thức được áp dụng:
sudo systemctl restart sshd
⚠️ NGUYÊN TẮC VÀNG TRƯỚC KHI THOÁT: Tuyệt đối không được ngắt kết nối SSH hiện tại của bạn ngay lập tức. Hãy mở thêm một cửa sổ terminal mới độc lập trên máy tính cá nhân và thực hiện lệnh kết nối thử lại. Nếu kết nối mới thành công mà không đòi hỏi mật khẩu, cấu hình của bạn đã hoàn hảo. Nếu có bất kỳ sự cố phân quyền nào xảy ra, bạn vẫn còn phiên kết nối cũ để kịp thời sửa lại tệp tin cấu hình mà không bị khóa tài khoản hoàn toàn.
6. Tối ưu hóa quy trình làm việc với SSH Agent và tệp cấu hình cục bộ
Khi quản trị nhiều máy chủ hoặc liên kết với các dịch vụ khác nhau, việc thường xuyên phải gõ lại cụm mật khẩu bảo vệ khóa (Passphrase) hay chỉ định đường dẫn tệp tin khóa cụ thể sẽ gây ra nhiều phiền toái. Bạn có thể tự động hóa hoàn toàn quy trình này bằng công cụ quản lý khóa tích hợp sẵn.
Kích hoạt dịch vụ nền SSH Agent trên máy tính cá nhân để lưu giữ tạm thời khóa đã được mở mật khẩu trong suốt phiên làm việc hiện tại của bạn:
# Bật dịch vụ quản lý khóa chạy ngầm trên máy tính eval "$(ssh-agent -s)" # Đăng ký Private Key vào bộ nhớ đệm của Agent ssh-add ~/.ssh/id_ed25519
Bên cạnh đó, bạn có thể tạo một tệp tin cấu hình mạng cá nhân nằm tại đường dẫn ~/.ssh/config trên thiết bị của mình. Cấu hình này cho phép bạn định nghĩa các bí danh viết tắt cực kỳ tiện lợi cho các máy chủ khác nhau:
# Tệp tin cấu hình cá nhân ~/.ssh/config
Host vps-chinh
HostName 123.45.67.89
User root
Port 22
IdentityFile ~/.ssh/id_ed25519
Mỗi lần muốn kết nối tới máy chủ sau khi đã định nghĩa tệp tin này, bạn chỉ cần gõ đúng một cụm từ ngắn gọn: ssh vps-chinh. Toàn bộ thông tin về IP, tên tài khoản đăng nhập, cổng kết nối và khóa riêng tư tương ứng sẽ tự động được áp dụng chuẩn xác mà không cần bất kỳ tham số thủ công nào khác.
7. Tích hợp SSH Key vào GitHub hỗ trợ tự động hóa Deploy
Đăng nhập VPS không mật khẩu chỉ là một nửa chặng đường nâng cao năng suất công việc của bạn. Đối với lập trình viên và các kỹ sư vận hành, việc kết nối không cần mật khẩu từ VPS đến các kho chứa mã nguồn như GitHub là yếu tố sống còn để triển khai hệ thống phân phối mã nguồn tự động (CI/CD).
Bạn có thể thiết lập dòng chảy mã nguồn này một cách trơn tru thông qua các bước thao tác cụ thể sau:
- Trích xuất mã khóa công khai: Sử dụng lệnh hiển thị nội dung trên terminal để copy chính xác chuỗi Public Key của bạn:
cat ~/.ssh/id_ed25519.pub. - Đăng ký khóa trên tài khoản GitHub: Truy cập vào tài khoản cá nhân của bạn trên website GitHub, di chuyển tới mục Settings -> SSH and GPG keys -> nhấn nút New SSH Key.
- Nhập dữ liệu: Điền tên thiết bị của bạn vào phần tiêu đề để dễ quản lý sau này, dán toàn bộ chuỗi ký tự khóa vừa sao chép ở bước trên vào ô giá trị và nhấn xác nhận lưu lại.
Để kiểm tra tính thông suốt của luồng kết nối mật mã này, hãy chạy lệnh kiểm thử trên dòng lệnh:
ssh -T [email protected]
Hệ thống sẽ gửi thông điệp chào mừng đích danh tên tài khoản GitHub của bạn ngay sau khi xác nhận kết nối thành công. Điều này đồng nghĩa với việc bạn có thể kéo (pull) và đẩy (push) các thay đổi mã nguồn từ xa mà hoàn toàn không cần nhập mật khẩu cá nhân hay mã xác thực hai lớp (2FA) phiền toái nữa.
8. Bảng chẩn đoán và khắc phục sự cố kết nối SSH Key nhanh chóng
Trong thực tế vận hành hệ thống, chỉ cần sai lệch một chút về phân quyền tệp tin hoặc khai báo sai đường dẫn khóa, tiến trình kết nối sẽ bị từ chối ngay lập tức. Dưới đây là bảng chẩn đoán lỗi thực chiến được đúc rút từ nhiều năm quản trị hạ tầng của các kỹ sư hệ thống:
| Triệu chứng lỗi | Nguyên nhân chính | Biện pháp xử lý | Cách phòng ngừa lâu dài |
|---|---|---|---|
| Permission denied (publickey) | VPS chưa bật xác thực bằng khóa hoặc nội dung file authorized_keys bị nhập sai ký tự. | Mở file authorized_keys kiểm tra kỹ không để sót khoảng trắng hay xuống dòng lỗi. | Nên dùng công cụ tự động ssh-copy-id để tránh lỗi nhập văn bản thủ công. |
| Unprotected private key file | Private Key trên thiết bị cá nhân đang bị phân quyền quá lỏng lẻo cho nhiều người đọc. | Chạy lệnh phân quyền lại cho khóa riêng tư: chmod 600 ~/.ssh/id_ed25519. |
Không lưu tệp tin khóa tại các phân vùng dùng chung hoặc đồng bộ đám mây công cộng. |
| Host key verification failed | Chữ ký số nhận dạng của VPS đã thay đổi (do cài lại hệ điều hành hoặc trùng IP cũ). | Xóa dòng nhận dạng lỗi của máy chủ bằng lệnh: ssh-keygen -R [địa_chỉ_IP_VPS]. |
Kiểm tra kỹ trước khi đổi nhà mạng cung cấp hoặc cài đặt mới máy chủ. |
| Connection refused (Port 22) | Máy chủ đã thay đổi cổng dịch vụ SSH mặc định hoặc tường lửa chặn lưu lượng kết nối. | Chỉ định đúng cổng kết nối mới bằng lệnh: ssh -p [số_cổng] root@IP_VPS. |
Cấu hình cổng kết nối cố định bên trong tệp tin ~/.ssh/config cục bộ. |
CÁC CÂU HỎI THƯỜNG GẶP KHI SỬ DỤNG SSH KEY
Hỏi: Tôi có thể sử dụng một cặp SSH Key duy nhất để quản trị nhiều máy chủ VPS khác nhau không?
Trả lời: Bạn hoàn toàn có thể sao chép cùng một chuỗi Public Key lên tất cả các máy chủ VPS cần quản lý. Cách làm này mang lại sự thuận tiện rất lớn khi chỉ cần quản lý duy nhất một Private Key trên máy tính cá nhân để mở tất cả các ổ khóa.
Hỏi: Chuyện gì xảy ra nếu tôi vô tình làm mất Private Key trên máy tính cá nhân?
Trả lời: Nếu bạn đã tắt xác thực mật khẩu và mất Private Key, bạn sẽ bị khóa truy cập hoàn toàn khỏi máy chủ. Tuy nhiên, nếu sử dụng dịch vụ tại InterData, bạn có thể dễ dàng khởi động lại hệ thống vào chế độ cứu hộ (Rescue Mode) hoặc sử dụng cổng Console trên bảng điều khiển để thiết lập lại mật khẩu truy cập tạm thời.
Hỏi: Tôi có nên cài đặt Passphrase cho SSH Key của mình hay không?
Trả lời: Khuyến nghị bảo mật là nên đặt Passphrase. Nếu ai đó tiếp cận vật lý được máy tính của bạn và lấy cắp tệp tin Private Key, họ vẫn không thể sử dụng nó để thâm nhập hệ thống VPS nếu không biết Passphrase giải mã.
Hỏi: Thuật toán Ed25519 có hoạt động ổn định trên hệ thống Windows cũ hay không?
Trả lời: Ed25519 được hỗ trợ hoàn toàn trên các phiên bản Windows hiện đại qua ứng dụng PowerShell và OpenSSH tích hợp sẵn. Nếu dùng các công cụ cũ hơn như PuTTY trên Windows 7, bạn sẽ cần tải phiên bản mới nhất của PuTTYgen để tạo và chuyển đổi khóa sang định dạng thích hợp.
Hỏi: Tại sao tôi không thể kết nối dù đã dán đúng Public Key vào máy chủ?
Trả lời: Nguyên nhân phổ biến nhất là lỗi phân quyền file hệ thống. Thư mục .ssh trên VPS bắt buộc phải có quyền truy cập là 700 và tệp tin authorized_keys phải là 600. Hệ thống bảo mật SSH sẽ từ chối xác thực nếu phát hiện các tệp tin này mở quyền cho các nhóm người dùng khác đọc được.
Nâng cấp bảo mật máy chủ tối đa
Cấu hình bảo mật hệ thống thông qua giải pháp tạo ssh key và vô hiệu hóa phương thức đăng nhập bằng mật khẩu chính là rào cản ngăn chặn hầu hết các cuộc tấn công quét cổng hiện nay. Việc sở hữu một hạ tầng máy chủ vững chắc, hiệu năng xử lý cao sẽ giúp nâng tầm bảo mật dữ liệu cũng như vận hành ổn định hệ thống ứng dụng của doanh nghiệp bạn.
Sở Hữu Ngay Hạ Tầng VPS Khởi Chạy Nhanh Chóng
Vận hành hệ thống ổn định trên cấu hình CPU thế hệ mới cùng ổ cứng NVMe chuyên dụng.
Mọi thông tin hướng dẫn kỹ thuật trong bài viết này chỉ mang tính chất tham khảo chung. Các câu lệnh, tệp tin cấu hình và thông số hoạt động thực tế có thể thay đổi tùy thuộc vào hệ điều hành, phiên bản dịch vụ và môi trường mạng của từng máy chủ cụ thể. Người dùng cần thực hiện kiểm thử kỹ lưỡng trên môi trường thử nghiệm và tiến hành sao lưu dữ liệu đầy đủ trước khi áp dụng trực tiếp lên hệ thống đang chạy dịch vụ.
Premium Base
- 2 vCore Intel Xeon Scalable
- 2 GB RAM
- 30 GB NVMe U.2
- Network: 300 Mbps
Premium Base
- 3 vCore Intel Xeon
- 3 GB RAM
- 30 GB SSD NVMe U.2
- Network: 300 Mbps
Premium Pro
- 6 vCore Intel Xeon Scalable
- 8 GB RAM
- 80 GB SSD NVMe U.2
- Network: 350 Mbps
Cloud-Day - Base
- Tặng 80 GB S3 và 1 NĂM SỬ DỤNG khi mua 2 năm trở lên
- 4 vCPU AMD EPYC
- 6 GB RAM
- 60 GB SSD NVMe U.2
- Network: 10 Gbps
