SSH Key là gì? Hướng dẫn tạo SSH Key toàn tập (A-Z 2025)
Việc tạo SSH Key để thay thế mật khẩu không còn là một tùy chọn, mà là yêu cầu bắt buộc để bảo vệ “cửa chính” VPS của bạn. Mật khẩu, dù phức tạp đến đâu, vẫn luôn là mục tiêu của các cuộc tấn công dò tìm (brute-force), trong khi SSH Key cung cấp một lớp bảo mật gần như tuyệt đối.
Đây là bài viết chuyên sâu về Lớp phòng thủ thứ 3, một phần trong hướng dẫn toàn diện Bảo mật VPS từ A-Z: 10 lớp phòng thủ thiết yếu (cập nhật 2025) của chúng tôi. Bài viết này sẽ là cẩm nang toàn tập, dẫn dắt bạn qua mọi khía cạnh của SSH Key, từ cách tạo và cài đặt cho đến các kỹ thuật quản lý chuyên nghiệp.
Tóm tắt cho người bận rộn
- SSH Key là gì? Là một cặp khóa mã hóa (công khai và riêng tư) dùng để đăng nhập vào server, an toàn hơn mật khẩu gấp nhiều lần.
- Tại sao phải dùng? Chống lại tấn công dò mật khẩu (brute-force), tăng cường bảo mật và tiện lợi khi quản trị.
- Thuật toán tốt nhất 2025? Luôn ưu tiên Ed25519 vì tốc độ và bảo mật vượt trội.
- Lệnh tạo key chính?
ssh-keygen -t ed25519 -C "email_cua_ban"
- Bước bắt buộc sau khi tạo? Vô hiệu hóa hoàn toàn việc đăng nhập bằng mật khẩu trên server.
SSH Key: Nguyên lý, ưu và nhược điểm
Trước khi đi vào thực hành, điều quan trọng là phải hiểu rõ tại sao SSH Key lại được xem là tiêu chuẩn vàng trong bảo mật, cũng như những điểm cần lưu ý khi sử dụng nó.
Nguyên lý hoạt động
SSH Key hoạt động dựa trên một cặp khóa:
- Private Key (Khóa riêng tư): Giống như chìa khóa nhà của bạn. Bạn phải giữ nó tuyệt đối bí mật và không bao giờ đưa cho ai. Nó được dùng để tạo ra “chữ ký số” chứng minh bạn là chủ sở hữu.
- Public Key (Khóa công khai): Giống như ổ khóa. Bạn có thể thoải mái sao chép và “gắn” nó lên bất kỳ server nào bạn muốn cấp quyền truy cập. Nó được dùng để xác thực “chữ ký số”.
Khi đăng nhập, máy của bạn sẽ tạo một chữ ký bằng Private Key. Server nhận được, dùng Public Key đã lưu để kiểm tra. Nếu chữ ký hợp lệ, bạn được vào cửa. Private Key không bao giờ rời khỏi máy của bạn trong suốt quá trình này.
Ưu điểm vượt trội
- Bảo mật gần như tuyệt đối: Một cặp khóa SSH Key hiện đại (như Ed25519) về mặt toán học là không thể bị bẻ khóa bằng các phương pháp tấn công brute-force thông thường. Độ phức tạp của nó vượt xa bất kỳ mật khẩu nào con người có thể tạo ra.
- Đăng nhập tiện lợi: Sau khi thiết lập, bạn có thể đăng nhập vào server mà không cần gõ lại mật khẩu. Khi kết hợp với công cụ như
ssh-agent
hayPageant
, bạn chỉ cần nhập mật khẩu của key (passphrase) một lần duy nhất cho cả phiên làm việc. - Nền tảng của tự động hóa: Là yếu tố bắt buộc cho các quy trình DevOps, Git, CI/CD, ví dụ như tự động triển khai mã nguồn từ Git, hoặc thực thi các script quản trị trên hàng loạt server mà không cần sự can thiệp của con người.
Nhược điểm cần lưu ý
- Rủi ro nếu làm lộ Private Key: Private Key (khóa riêng tư) chính là danh tính của bạn. Nếu kẻ xấu có được file private key chưa được mã hóa, chúng có toàn quyền truy cập vào server của bạn. Đó là lý do nó phải được bảo vệ cẩn mật bằng một passphrase mạnh.
- Phức tạp hơn cho người mới: Quá trình tạo và cài đặt SSH Key ban đầu có vẻ phức tạp hơn so với việc chỉ dùng mật khẩu. Tuy nhiên, bài viết này sẽ đơn giản hóa quy trình đó cho bạn.
Chọn thuật toán nào? Ed25519 là Vua
Khi tạo một SSH Key, bạn sẽ phải chọn một thuật toán mã hóa. Việc chọn đúng thuật toán sẽ ảnh hưởng đến cả hiệu năng và mức độ bảo mật. Dưới đây là so sánh các lựa chọn phổ biến nhất.
Thuật toán | Ưu điểm | Nhược điểm | Khuyến nghị |
Ed25519 | Rất nhanh, bảo mật cao, key ngắn gọn. Là thuật toán mặc định của OpenSSH hiện đại. | Có thể không tương thích trên các hệ thống rất cũ. | ✅ Lựa chọn tốt nhất hiện nay. |
RSA | Phổ biến nhất, tương thích rộng rãi ở mọi nơi. | Chậm hơn, cần độ dài khóa lớn (mặc định 3072-bit, khuyến nghị 4096-bit). | Dùng khi cần tương thích với hệ thống cũ. |
ECDSA | Nhanh và bảo mật hơn RSA ở cùng mức độ. | Có một số lo ngại lý thuyết về chất lượng của trình tạo số ngẫu nhiên. | Một lựa chọn tốt, nhưng Ed25519 được ưu tiên hơn. |
Kết luận: Hãy luôn ưu tiên sử dụng Ed25519 trừ khi bạn có lý do đặc biệt cần phải kết nối đến một hệ thống rất cũ không hỗ trợ nó. Thuật toán này cung cấp sự cân bằng hoàn hảo giữa tốc độ và bảo mật hàng đầu. Nó không chỉ là khuyến nghị mà còn là mặc định của chính công cụ ssh-keygen
trong các phiên bản mới nhất.
Hướng dẫn chi tiết cách tạo SSH Key (A-Z)
Đây là phần thực hành cốt lõi. Chúng tôi sẽ chia hướng dẫn cho từng hệ điều hành để bạn dễ dàng theo dõi.
Phần A: Dành cho macOS & Linux
Để tạo SSH Key trên macOS và Linux, bạn chỉ cần mở ứng dụng Terminal và sử dụng lệnh ssh-keygen
có sẵn. Dưới đây là các bước chi tiết:
Bước 1: Tạo cặp khóa trên máy của bạn
Mở ứng dụng Terminal và chạy lệnh sau. Lệnh này sẽ tạo một cặp khóa Ed25519 mới và gắn nhãn là địa chỉ email của bạn để dễ nhận biết.
ssh-keygen -t ed25519 -C "[email protected]"
Hệ thống sẽ hỏi bạn một vài câu:
Enter file in which to save the key...
: Nhấn Enter để chấp nhận vị trí lưu mặc định (~/.ssh/id_ed25519
).Enter passphrase...
: Đây là bước quan trọng. Hãy nhập một mật khẩu mạnh để bảo vệ file private key. Hãy nhập một mật khẩu cho chính file private key của bạn. Điều này tạo thêm một lớp bảo vệ. Nếu ai đó đánh cắp được file key, họ vẫn cần mật khẩu này để sử dụng nó.
Thế nào là một passphrase tốt?
Theo tài liệu chính thức của OpenSSH, một passphrase mạnh nên dài từ 10-30 ký tự, không phải là một câu văn dễ đoán, và nên kết hợp chữ hoa, chữ thường, số, và các ký tự đặc biệt.
Sau khi hoàn tất, bạn sẽ có hai file mới trong thư mục ~/.ssh
: id_ed25519
(Private Key) và id_ed25519.pub
(Public Key).
Cảnh báo quan trọng
Hoàn toàn không có cách nào để khôi phục lại passphrase đã mất. Nếu bạn quên nó, bạn sẽ phải tạo một cặp khóa mới và cập nhật lại public key trên tất cả các server.
Bước 2: Sao chép Public Key lên VPS
Bây giờ, chúng ta cần đưa “ổ khóa” (Public Key) lên server. Có hai cách để làm điều này.
- Cách 1: Dùng
ssh-copy-id
(Khuyến nghị)
Đây là phương pháp tốt nhất vì nó không chỉ sao chép key mà còn là một kịch bản thông minh giúp bạn phòng tránh các lỗi phổ biến nhất. Nó sẽ tự động tạo thư mục, file và quan trọng nhất là tự động thiết lập quyền (permission) chính xác trên server.
Để chắc chắn bạn đang sao chép đúng key, hãy dùng cờ -i
để chỉ định rõ file public key:
ssh-copy-id -i ~/.ssh/id_ed25519.pub ten_user@your_vps_ip
Lệnh này sẽ yêu cầu bạn nhập mật khẩu của ten_user
trên VPS. Đây là lần cuối cùng bạn cần dùng đến nó. Sau khi xác thực, public key của bạn sẽ được tự động thêm vào server.
- Cách 2: Sao chép thủ công
Nếu vì lý do nào đó máy bạn không có lệnh ssh-copy-id
, bạn có thể làm thủ công. Đầu tiên, hiển thị nội dung public key trên máy của bạn và sao chép nó:
cat ~/.ssh/id_ed25519.pub
Tiếp theo, đăng nhập vào VPS bằng mật khẩu và chạy các lệnh sau:
ssh ten_user@your_vps_ip
Trên VPS, chạy lần lượt các lệnh sau để dán key của bạn vào đúng file và thiết lập quyền bảo mật.
# Tạo thư mục .ssh nếu chưa có và set quyền
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "NỘI_DUNG_PUBLIC_KEY_BẠN_VỪA_COPY" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Bước 3: Đăng nhập bằng SSH Key
Giờ là lúc tận hưởng thành quả. Hãy đăng xuất khỏi server và thử đăng nhập lại. Lần này, hệ thống sẽ yêu cầu bạn nhập passphrase của key thay vì mật khẩu VPS.
ssh ten_user@your_vps_ip
Lần này, hệ thống sẽ không hỏi mật khẩu VPS nữa. Thay vào đó, nó sẽ yêu cầu bạn nhập passphrase (mật khẩu bạn đã đặt cho file key ở Bước 1).
Chúc mừng, bạn đã đăng nhập thành công bằng SSH Key!
Phần B: Dành cho Windows
Kể từ Windows 10 (phiên bản 1803), Windows đã tích hợp sẵn một OpenSSH client đầy đủ chức năng. Đây là phương pháp hiện đại và được khuyến nghị nhất.
- Lựa chọn 1: Dùng OpenSSH Client tích hợp sẵn (Khuyến nghị cho Windows 10/11)
Để tạo SSH Key trên Windows 10/11, phương pháp được khuyến nghị là sử dụng OpenSSH Client có sẵn trong PowerShell hoặc Command Prompt. Quá trình này gần như tương tự trên Linux.
Bước 1: Mở PowerShell hoặc Command Prompt và tạo khóa
Lệnh tạo khóa hoàn toàn giống với Linux/macOS:
ssh-keygen -t ed25519 -C "[email protected]"
Khóa sẽ được lưu mặc định tại C:\Users\Ten_Nguoi_Dung\.ssh\
. Hãy đặt một passphrase mạnh như đã hướng dẫn ở trên.
Bước 2: Sao chép Public Key lên VPS
OpenSSH trên Windows cũng có sẵn lệnh ssh-copy-id
:
ssh-copy-id -i $env:USERPROFILE\.ssh\id_ed25519.pub ten_user@your_vps_ip
Nếu không có, bạn có thể dùng lệnh type
(tương đương cat
trên Linux) để hiển thị và sao chép thủ công:
type $env:USERPROFILE\.ssh\id_ed25519.pub
# Dán nội dung này vào file ~/.ssh/authorized_keys trên server.
Bước 3: Đăng nhập
ssh ten_user@your_vps_ip
- Lựa chọn 2: Dùng PuTTY (Dành cho các phiên bản Windows cũ hoặc người dùng đã quen)
Bước 1: Tạo cặp khóa bằng PuTTYgen
- Mở PuTTYgen.
Giao diện PuTTYgen với nút Generate được chọn để bắt đầu quá trình tạo SSH Key.
- Ở mục “Parameters” dưới cùng, hãy chọn Ed25519.
- Nhấn nút “Generate”. PuTTYgen sẽ yêu cầu bạn di chuyển chuột ngẫu nhiên trong vùng trống để tạo ra sự ngẫu nhiên cho quá trình sinh khóa.
- Sau khi thanh tiến trình chạy xong, cặp khóa của bạn đã được tạo.
Bước 2: Lưu cặp khóa và đặt Passphrase
- Trong ô “Key comment”, bạn có thể nhập email hoặc tên để dễ nhận biết key.
- Trong ô “Key passphrase” và “Confirm passphrase”, hãy nhập một mật khẩu mạnh để bảo vệ private key.
Hướng dẫn đặt Key comment và Key passphrase để bảo vệ private key trong PuTTYgen.
- Nhấn nút “Save private key” và lưu nó ở một nơi an toàn trên máy tính. File này sẽ có đuôi là
.ppk
. Đây là file bạn sẽ dùng để đăng nhập.Giao diện PuTTYgen với hai nút Save public key và Save private key được chọn để lưu cặp khóa SSH.
- Quan trọng: Đừng đóng cửa sổ PuTTYgen vội. Hãy bôi đen và sao chép toàn bộ nội dung văn bản trong ô “Public key for pasting into OpenSSH authorized_keys file”. Đây chính là public key của bạn.
Bước 3: Sao chép Public Key lên VPS
Đăng nhập vào VPS của bạn bằng PuTTY và mật khẩu, sau đó dán thủ công nội dung public key vào file ~/.ssh/authorized_keys
trên VPS như đã hướng dẫn ở Phần A, Cách 2.
Bước 4: Cấu hình PuTTY để đăng nhập bằng Key
- Mở lại PuTTY.
- Trong mục “Session”, nhập địa chỉ IP của VPS vào ô “Host Name”.
Cấu hình thông tin Host Name, Port và lưu lại một session mới trong PuTTY.
Mẹo: Để tiện lợi hơn, bạn có thể vào Connection > Data và điền sẵn username vào ô Auto-login username.
Data của PuTTY để đăng nhập nhanh hơn.” class=”size-medium” /> Thiết lập tự động điền username trong mục Connection > Data của PuTTY để đăng nhập nhanh hơn.
- Đi đến mục Connection > SSH > Auth > Credentials.
- Nhấn nút “Browse…” ở ô “Private key file for authentication” và chọn đến file
.ppk
bạn đã lưu.SSH > Auth để chọn file private key (.ppk) cho việc xác thực.” class=”size-medium” /> Trong PuTTY, đi đến mục Connection > SSH > Auth để chọn file private key (.ppk) cho việc xác thực.
- (Tùy chọn) Quay lại mục “Session”, đặt một tên trong ô “Saved Sessions” và nhấn “Save” để lưu lại cấu hình này cho các lần sau.
- Nhấn “Open” để kết nối. Sau khi thanh tiến trình chạy xong, cặp khóa của bạn đã được tạo.
Nhấn nút Save để lưu lại toàn bộ cấu hình session và nút Open để bắt đầu kết nối SSH trong PuTTY.
Mẹo chuyên nghiệp: Chuyển đổi định dạng Key
PuTTYgen là một công cụ chuyển đổi định dạng mạnh mẽ. Trong menu “Conversions”, bạn có thể:
-
- Import key: Nạp một private key từ OpenSSH (ví dụ file
id_ed25519
) và lưu nó dưới dạng.ppk
. - Export OpenSSH key: Chuyển đổi một file
.ppk
trở lại định dạng của OpenSSH.
- Import key: Nạp một private key từ OpenSSH (ví dụ file

Sử dụng menu Conversions trong PuTTYgen để Export SSH key sang định dạng OpenSSH.
Quản lý Key và kết nối chuyên nghiệp
Sau khi cài đặt thành công, hãy cùng tìm hiểu các kỹ thuật nâng cao để làm việc hiệu quả và an toàn hơn.
Quản lý Passphrase với Agent (ssh-agent / Pageant)
ssh-agent
(trên Linux/macOS/WSL) và Pageant (trên Windows với PuTTY) là các chương trình chạy nền giúp ghi nhớ passphrase của bạn một cách an toàn. Bạn chỉ cần nhập passphrase một lần cho mỗi phiên làm việc.
Trên macOS/Linux/Windows-OpenSSH:
- Khởi động agent: Lệnh
eval "$(ssh-agent -s)"
sẽ khởi động agent và thiết lập môi trường cho phiên Terminal hiện tại. - Thêm key vào agent:
ssh-add ~/.ssh/id_ed25519
. Nó sẽ yêu cầu bạn nhập passphrase lần cuối.
Trên Windows (dùng PuTTY):
Chương trình tương ứng là Pageant.
- Khởi động Pageant từ Start Menu.
- Nháy chuột phải vào biểu tượng Pageant ở khay hệ thống và chọn “Add Key”.
- Chọn file
.ppk
của bạn và nhập passphrase.
Bảng tra cứu lệnh ssh-add
thông dụng
Lệnh | Chức năng |
ssh-add ~/.ssh/id_ed25519 |
Thêm một key cụ thể vào agent. |
ssh-add -l |
Liệt kê các key đang có trong agent. |
ssh-add -d ~/.ssh/id_ed25519 |
Xóa một key cụ thể khỏi agent. |
ssh-add -D |
Xóa tất cả các key khỏi agent. |
ssh-add -t 1h ~/.ssh/id_ed25519 |
Thêm key với thời gian sống là 1 giờ. |
ssh-add -c ~/.ssh/id_ed25519 |
Yêu cầu xác nhận (qua pop-up) mỗi khi key được sử dụng. |
ssh-add -x |
Khóa agent bằng một mật khẩu mới. |
ssh-add -X |
Mở khóa agent đã bị khóa. |
ssh-agent -k |
Tắt agent và xóa mọi key khỏi bộ nhớ. |
Cảnh báo về Chuyển tiếp Agent (-A
)
Chỉ nên bật tính năng này (ssh -A ...
) khi kết nối đến các máy chủ bạn hoàn toàn tin tưởng. Nếu kẻ tấn công chiếm quyền trên máy chủ đó, chúng có thể lợi dụng kết nối agent của bạn để mạo danh bạn truy cập các máy chủ khác. Tuy nhiên, private key của bạn không bao giờ bị gửi qua mạng.
Làm chủ kết nối với file ~/.ssh/config
File ~/.ssh/config
là người bạn đồng hành tốt nhất khi bạn quản trị nhiều server. Nó giúp bạn tạo các lối tắt và áp dụng các cấu hình phức tạp một cách tự động.
Quy tắc vàng: Luôn đặt các cấu hình chung (Host *
) ở dưới cùng và các cấu hình cụ thể hơn ở trên.
Mẹo chuyên nghiệp: Để dễ quản lý, bạn có thể chia nhỏ file config bằng cách thêm dòng Include ~/.ssh/conf.d/*.conf
vào file ~/.ssh/config
chính, sau đó tạo các file .conf
riêng lẻ trong thư mục ~/.ssh/conf.d/
.
Ví dụ về một file config “Tiêu chuẩn Vàng”
# ~/.ssh/config
# === CẤU HÌNH CHO SERVER TRUNG GIAN (BASTION) ===
Host bastion.mycorp
HostName 123.45.67.89
User my_admin
IdentityFile ~/.ssh/keys/mycorp_rsa
# === CẤU HÌNH CHO SERVER NỘI BỘ (TRUY CẬP QUA BASTION) ===
Host app-server-prod
HostName 10.0.1.100
User developer
# Sử dụng ProxyJump để kết nối thông qua server bastion
ProxyJump bastion.mycorp
IdentityFile ~/.ssh/keys/app_prod_ed25519
# === CẤU HÌNH VPS CÁ NHÂN ===
Host personal-vps
HostName my-vps.com
User root
IdentityFile ~/.ssh/keys/personal_ed25519
# === CÀI ĐẶT CHUNG CHO TẤT CẢ CÁC HOST ===
# Áp dụng cho mọi kết nối trừ khi bị ghi đè
Host *
# Chỉ sử dụng key được chỉ định trong file config
IdentitiesOnly yes
# Tự động thêm key vào agent khi dùng
AddKeysToAgent yes
# Giữ kết nối SSH không bị ngắt
ServerAliveInterval 60
# Bảo mật: Không bao giờ thử xác thực bằng mật khẩu
PasswordAuthentication no
Giờ đây, bạn chỉ cần gõ ssh app-server-prod
để tự động kết nối qua server bastion một cách liền mạch.
Luân chuyển khóa (Key Rotation)
Vì lý do bảo mật, bạn nên tạo thói quen thay đổi (luân chuyển) SSH key định kỳ, ví dụ mỗi năm một lần. Quy trình này giúp giảm thiểu rủi ro nếu một key cũ vô tình bị lộ.
Quy trình rất đơn giản:
- Tạo một cặp key mới trên máy cá nhân của bạn (đặt tên file khác đi).
- Dùng
ssh-copy-id
để sao chép public key mới lên server. - Đăng nhập bằng key mới để chắc chắn nó hoạt động.
- Trên server, mở file
~/.ssh/authorized_keys
và xóa dòng chứa public key cũ.
Cứng hóa Server SSH (Bắt buộc)
Để hoàn tất việc bảo mật bằng SSH Key, bước bắt buộc tiếp theo là ‘cứng hóa’ cấu hình SSH trên server của bạn trong file /etc/ssh/sshd_config
.
CẢNH BÁO: Hãy mở sẵn một cửa sổ terminal đã đăng nhập thành công bằng key trước khi thực hiện các bước này để đảm bảo bạn không tự khóa mình khỏi VPS.
Bước 1: Vô hiệu hóa đăng nhập bằng mật khẩu
Đây là bước quan trọng nhất. Hãy đảm bảo các dòng sau được thiết lập chính xác. Đây là cách làm chuẩn và an toàn nhất.
PasswordAuthentication no
KbdInteractiveAuthentication no # Tắt các phương thức hỏi-đáp, bao gồm cả password
ChallengeResponseAuthentication no # Tên cũ của KbdInteractiveAuthentication, nên đặt là no cho chắc chắn
UsePAM yes # Giữ nguyên để không phá vỡ các chức năng khác như 2FA
Việc tắt xác thực bằng mật khẩu chính là thực thi Lớp 4: Khóa trái các lối vào không an toàn. Đồng thời, giữ UsePAM yes
là cực kỳ quan trọng, vì nó là nền tảng để bạn có thể triển khai các cơ chế xác thực nâng cao hơn, chẳng hạn như Lớp 8: Thiết lập xác thực hai yếu tố (2FA).
Bước 2: Vô hiệu hóa hoàn toàn đăng nhập của Root
Đây là một quy tắc bảo mật cơ bản. Bạn không bao giờ nên đăng nhập trực tiếp bằng tài khoản root.
CẢNH BÁO: Trước khi làm bước này, hãy chắc chắn bạn đã có một tài khoản người dùng thường và đã cấp cho nó quyền sudo
. Nếu chưa, hãy làm theo hướng dẫn chi tiết tại Lớp 1: Quản lý user và phân quyền.
Mở file /etc/ssh/sshd_config
và sửa dòng sau:
PermitRootLogin no
Bước 3 (Nâng cao): Tạo danh sách trắng người dùng
Để tăng cường kiểm soát, bạn có thể chỉ định rõ những tài khoản/nhóm nào được phép đăng nhập qua SSH. Ví dụ, chỉ cho phép người dùng trong nhóm sshusers
:
AllowGroups sshusers
Bước 4: Áp dụng thay đổi
Cuối cùng, đừng quên khởi động lại dịch vụ SSH để áp dụng mọi thay đổi:
sudo systemctl restart sshd
Sửa lỗi và các mẹo hay
Sửa lỗi “Permission denied (publickey)”
Đây là lỗi phổ biến nhất. Nếu gặp lỗi này, hãy kiểm tra:
- Quyền phía Server (Nguyên nhân #1): Chạy
chmod 700 ~/.ssh
vàchmod 600 ~/.ssh/authorized_keys
trên VPS. Lỗi này thường do server cóStrictModes yes
, sẽ từ chối kết nối nếu quyền file quá rộng. - Quyền phía Client: Chạy
chmod 600 ~/.ssh/id_ed25519
trên máy của bạn. OpenSSH client sẽ tự động bỏ qua các private key có quyền truy cập không an toàn. - Nội dung Public Key: Kiểm tra file
~/.ssh/authorized_keys
trên server xem key có được dán chính xác, trên một dòng duy nhất không. - Kiểm tra log chi tiết: Dùng cờ
-v
khi kết nối để SSH hiển thị chi tiết các bước nó đang thực hiện:ssh -v ten_user@your_vps_ip
.
Mẹo “cứu cánh”: Khôi phục file Public Key (.pub) đã mất
Nếu bạn lỡ tay xóa mất file .pub
, đừng lo lắng. Miễn là còn giữ file private key, bạn có thể dễ dàng tái tạo nó bằng lệnh:
ssh-keygen -y -f ~/.ssh/id_ed25519 > ~/.ssh/id_ed25519.pub
Kết luận
Việc chuyển từ mật khẩu sang SSH Key là một trong những nâng cấp bảo mật quan trọng và hiệu quả nhất bạn có thể làm cho VPS của mình. Nó không chỉ giúp bạn chống lại các cuộc tấn công tự động mà còn mang lại sự tiện lợi và chuyên nghiệp trong quá trình quản trị hệ thống.
Bằng cách làm theo hướng dẫn trong bài viết này, bạn đã xây dựng được một “cửa chính” gần như bất khả xâm phạm. Hãy xem đây là một kỹ năng nền tảng và áp dụng nó cho mọi server bạn quản lý để luôn an tâm về sự an toàn của dữ liệu.
Tài liệu tham khảo
- OpenSSH Manuals:
ssh
: https://man.openbsd.org/ssh.1ssh-keygen
: https://man.openbsd.org/ssh-keygen.1ssh-copy-id
: https://linux.die.net/man/1/ssh-copy-idssh-agent
: https://man.openbsd.org/ssh-agent.1ssh_config
(Client): https://man.openbsd.org/ssh_config.5sshd_config
(Server): https://man.openbsd.org/sshd_config.5
- PuTTY Documentation: https://the.earth.li/~sgtatham/putty/0.83/htmldoc/Chapter8.html#pubkey