Mục lục
Mình giải thích sơ về SSH Key và tại sao dùng nó nhé
Hãy bắt đầu bằng cách làm rõ khái niệm về SSH. SSH, viết tắt của Secure Shell, là một giao thức bảo mật giúp mã hóa dữ liệu trong quá trình kết nối giữa máy tính của bạn và máy chủ, như minh họa trong mô hình bên dưới.
Thông thường, để kết nối đến máy chủ, bạn sẽ sử dụng mật khẩu root để truy cập thông qua SSH. Nhưng liệu cách này có thực sự đảm bảo an toàn tuyệt đối hay không? Từ góc nhìn của một kỹ thuật viên hệ thống, việc sử dụng mật khẩu root để kết nối SSH vẫn tiềm ẩn nhiều rủi ro. Khi máy chủ VPS của bạn hoạt động trực tuyến, nó dễ dàng trở thành mục tiêu cho các cuộc tấn công, đặc biệt là việc bị dò mật khẩu bởi các hacker. Vậy làm thế nào để bảo vệ máy chủ của bạn tốt hơn? Hãy cùng tìm hiểu cách sử dụng SSH Key – một giải pháp bảo mật hiệu quả hơn.
SSH Key là một phương pháp xác thực sử dụng cặp khóa bảo mật gồm Private Key và Public Key. Bạn có thể hình dung đơn giản: Public Key là ổ khóa, còn Private Key chính là chìa khóa. Hai loại khóa này có mối liên kết chặt chẽ, giúp đảm bảo chỉ ai có “chìa khóa” mới có thể “mở khóa” truy cập. Khi tạo SSH Key, bạn sẽ nhận được hai tệp:
- Public Key: Được lưu trên máy chủ hoặc VPS.
- Private Key: Lưu trên máy tính cá nhân của bạn, chỉ mình bạn sở hữu.
Sự kết hợp này loại bỏ nguy cơ bị tấn công dò mật khẩu, vì chỉ những ai có Private Key phù hợp mới có thể đăng nhập. Thậm chí nếu chẳng may để lộ Private Key, bạn vẫn có lớp bảo mật bổ sung là Passphrase – một mật khẩu để bảo vệ khóa riêng tư.
Với những lợi ích trên, việc sử dụng SSH Key không chỉ cần thiết mà còn là một bước không thể thiếu để tăng cường bảo mật cho máy chủ của bạn. Giờ thì, không chần chừ nữa, hãy cùng tạo SSH Key và thiết lập kết nối an toàn nhé!
Hướng dẫn tạo SSH Key
Có rất nhiều công cụ hỗ trợ bạn tạo SSH Key, nhưng cơ bản chúng đều thực hiện nhiệm vụ chính: tạo ra một cặp khóa gồm Public Key và Private Key. Trong phần này, mình sẽ hướng dẫn cách tạo SSH Key trên Windows và Linux.
1. Sử dụng Putty trên Windows
Cài đặt công cụ hỗ trợ:
- Tải và cài đặt PuTTYgen
Sử dụng PuTTYgen:
Sau khi tải xong và cài đặt bạn mở PuTTY Gen lên để tạo SSH key nhé. Tại đây bạn chọn Generate để tạo.
Tiếp đến bạn hãy Di chuyển con chuột vào khung trống này cho đến khi tạo xong ssh key.
Khi xuất hiện như ảnh bên dưới là đã thành công. Nhưng bạn hãy thực hiện một bước nữa là đặt passphrase để mở private key nhé. Bạn nhập vào passwd tự chọn vào khung Key passphase và Confirm passphase. Sau khi nhập hoàn tất bạn click vào Save private key và save public key để lưu lại ở máy cá nhân.
2. Sử dụng Windows Terminal tạo SSH KEY
Mở Windows Terminal hoặc Command Prompt. Chạy lệnh:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Lưu cặp khóa vào thư mục mặc định (~/.ssh/
) hoặc chọn vị trí khác theo ý bạn.
Public Key nằm trong tệp .pub
và Private Key là tệp còn lại.
3. Sử dụng Linux/MacOS
Đối với Linux hoặc MacOS, cả hai đều thuộc nhóm hệ điều hành dựa trên Unix, nên cách thực hiện và các lệnh tạo SSH Key gần như tương tự nhau. Để tạo một cặp Public Key và Private Key, bạn chỉ cần làm theo các bước sau:
Bước 1: Mở cửa sổ Terminal.
Bước 2: Chạy lệnh sau
ssh-keygen -t rsa
Bước 3: Làm theo hướng dẫn trên màn hình:
- Xác nhận vị trí lưu khóa (mặc định là
~/.ssh/id_rsa
) hoặc chỉ định đường dẫn khác nếu bạn muốn. - Đặt Passphrase để tăng cường bảo mật cho Private Key (không bắt buộc, nhưng được khuyến nghị).
Bước 4: Nhận SSH Key
Sau khi hoàn tất, bạn sẽ nhận được:
- Public Key: Thường nằm trong tệp
~/.ssh/id_rsa.pub
. - Private Key: Thường nằm trong tệp
~/.ssh/id_rsa
.
Hướng dẫn sử dụng SSH Key
Sau khi hoàn thành việc tạo SSH Key ở các bước trên, bạn cần thực hiện theo các bước dưới đây để bắt đầu sử dụng.
Bước 1: Đưa Public Key lên Server/VPS
Đầu tiên, bạn cần truy cập vào máy chủ hoặc VPS bằng thông tin đăng nhập root (mật khẩu). Sau đó, thực hiện các lệnh sau theo trình tự:
mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Bằng cách chạy lệnh bên dưới, bạn copy toàn bộ chuổi ký tự public key đã tạo vào nhé
nano ~/.ssh/authorized_keys
Bước 2: Cấu hình SSH
Sau khi đã cấu hình SSH Key thành công, bạn nên tắt tính năng đăng nhập bằng mật khẩu (PasswordAuthentication) để ngăn chặn nguy cơ bị tấn công dò mật khẩu hoặc brute force. Dưới đây là các bước thực hiện:
1. Mở tệp cấu hình SSH:
Sử dụng trình chỉnh sửa văn bản yêu thích của bạn để mở tệp /etc/ssh/sshd_config
. Ví dụ, sử dụng nano
:
sudo nano /etc/ssh/sshd_config
2. Tìm dòng cấu hình PasswordAuthentication:
Tìm đến dòng:
PasswordAuthentication yes
3. Chuyển trạng thái thành “no”:
PasswordAuthentication no
4. Lưu tệp và thoát:
Với nano
, bạn nhấn Ctrl + O
để lưu, sau đó nhấn Ctrl + X
để thoát.
5. Khởi động lại dịch vụ SSH:
Áp dụng thay đổi bằng cách khởi động lại dịch vụ SSH:
sudo systemctl restart sshd
Bước 3: Sử dụng SSH Key
Việc sử dụng SSH Key trên Windows và Linux có một số điểm khác biệt. Dưới đây là hướng dẫn chi tiết cách sử dụng SSH Key trên Windows với PuTTY.
Sử dụng SSH Key với PuTTY trên Windows
- Mở PuTTY:
- Khởi chạy PuTTY, công cụ SSH client phổ biến trên Windows.
- Cấu hình sử dụng Private Key:
- Trong cửa sổ PuTTY, điều hướng đến mục Connection > SSH > Auth trong menu bên trái.
- Nhấn nút Browse và chọn tệp Private Key đã tạo và lưu từ bước trước (tệp có phần mở rộng
.ppk
).
- Kết nối tới máy chủ:
- Quay lại mục Session, nhập địa chỉ IP của server vào ô Host Name (or IP address) và nhấn Open để bắt đầu kết nối.
- Nhập Passphrase:
- Nếu Private Key của bạn được bảo vệ bằng Passphrase, PuTTY sẽ yêu cầu nhập Passphrase trong quá trình kết nối. Nhập Passphrase chính xác để hoàn tất đăng nhập.
Sử dụng SSH Key với Linux/MacOS
Trên Linux hoặc MacOS, việc sử dụng SSH Key để kết nối rất đơn giản. Bạn chỉ cần mở Terminal và làm theo hướng dẫn dưới đây:
- Sử dụng lệnh SSH để kết nối:
Nhập lệnh sau vào Terminal:ssh -i /path/to/private_key username@server_ip
/path/to/private_key
: Đường dẫn đầy đủ đến tệp Private Key mà bạn đã tạo (thường nằm trong~/.ssh/id_rsa
).username
: Tên người dùng để đăng nhập vào server (ví dụ:root
hoặc tên user khác).server_ip
: Địa chỉ IP hoặc tên miền của máy chủ.
- Nhập Passphrase (nếu có):
Nếu Private Key của bạn được bảo vệ bằng Passphrase, hệ thống sẽ yêu cầu nhập. Điền Passphrase để tiếp tục kết nối. - Xác minh kết nối thành công:
Sau khi nhập đúng thông tin, bạn sẽ được kết nối vào server mà không cần nhập mật khẩu.
Ví dụ:
Giả sử bạn lưu Private Key tại ~/.ssh/id_rsa
, tên đăng nhập là root
, và địa chỉ IP máy chủ là 192.168.1.100
. Lệnh sẽ như sau:
ssh -i ~/.ssh/id_rsa [email protected]
Lưu ý:
- Nếu tệp Private Key của bạn nằm trong thư mục mặc định (
~/.ssh/id_rsa
), bạn có thể bỏ qua tùy chọn-i
và chỉ cần chạy:bashSao chép mãssh username@server_ip
SSH sẽ tự động sử dụng khóa trong thư mục mặc định. - Hãy đảm bảo tệp Private Key có quyền truy cập an toàn (chỉ bạn có thể đọc):bashSao chép mã
chmod 600 ~/.ssh/id_rsa
Với các bước trên, bạn đã có thể sử dụng SSH Key trên Linux hoặc MacOS để đăng nhập vào server một cách an toàn!