Xin chào, bài viết này Thắng sẽ hướng dẫn mọi người biết cách tạo SSH key trên Centos 7 và đăng nhập vào Server bằng SSH key từ máy tính cá nhân khác.
SSH Key là gì?
SSH key là một phương pháp xác thực và bảo mật trong hệ thống SSH (Secure Shell). SSH là một giao thức mạng được sử dụng để thiết lập kết nối bảo mật giữa hai máy tính, thường là một máy tính client và một máy server. SSH cho phép người dùng điều khiển và truy cập vào máy chủ từ xa một cách an toàn thông qua việc mã hóa dữ liệu truyền qua mạng.
Trong quá trình xác thực, SSH key sử dụng cặp khóa công khai (public key) và khóa riêng tư (private key). Quá trình tạo cặp khóa này diễn ra trên máy tính client và sau đó khóa công khai sẽ được cài đặt trên server. Khóa riêng tư sẽ được giữ bí mật và không được chia sẻ.
Khi người dùng cố gắng kết nối vào máy chủ từ xa thông qua SSH, máy chủ sẽ yêu cầu người dùng cung cấp khóa riêng tư tương ứng với khóa công khai đã được cài đặt trước đó. Nếu khóa riêng tư hợp lệ, máy chủ sẽ xác thực người dùng và cho phép kết nối.
Ưu điểm của việc sử dụng SSH key bao gồm:
- Bảo mật cao: Khóa riêng tư không bao giờ được gửi qua mạng và chỉ nằm trên máy tính client.
- Tiện ích: Người dùng không cần phải nhập mật khẩu mỗi lần kết nối, giúp tăng tính tiện lợi và hiệu quả trong việc quản lý nhiều máy chủ từ xa.
- Không yêu cầu mạng: Một khi khóa được cài đặt, bạn có thể kết nối vào máy chủ mà không cần truyền bất kỳ thông tin xác thực qua mạng.
Hướng dẫn tạo SSH Key
Cụ thể là Thắng thực hành trên server là Centos 7 và client là Windows nhé.
Trước tiên, bạn cần tải và cài đặt các công cụ sau WinSCP, Putty, Puttygen (Lưu ý: có bản portable chạy ngay, không nhất thiết phải cài đặt vào ổ C).
Bạn có thể xem lại video hướng dẫn trước từ phút thứ 8 trở đi để nắm rõ cách cài đặt và sử dụng những công cụ trên nhé:
Tạo cặp khóa public key & private key trên Server
OK, sau cài đặt xong bộ công cụ trên thì bạn đăng nhập vào VPS/Server bằng WinSCP, sau đó mở Putty lên để đăng nhập vào VPS/Server nhé.
Sau đó chạy lệnh ssh-keygen
1 |
ssh-keygen |
Tiếp theo chạy lệnh copy file public key ra file authorized_keys
1 |
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys |
Các key sẽ được tạo ra và lưu trữ trong /root/.ssh/ gồm có id_rsa và id_rsa.pub. Bạn tải 2 file này về máy tính cá nhân nhé.
Tiếp theo là sửa file cấu hình SSH, về cách làm và 1 số câu lệnh nếu chưa rõ bạn hãy xem lại bài Cách đăng nhập SSH root bằng mật khẩu trên VPS Google Cloud của mình nhé.
1 |
vi /etc/ssh/sshd_config |
Tìm và sửa thông số sau thành yes
1 |
PubkeyAuthentication yes |
Hoặc bạn có thể mở file đó trực tiếp bằng WinSCP để sửa thay vì sửa bằng màn hình lệnh cũng được.
Sau khi sửa xong file SSH config thì khởi động lại dịch vụ sshd bằng lệnh sau:
1 |
service sshd restart |
hoặc
1 |
systemctl restart sshd.service |
Tạo private key trên máy client
Bạn mở Puttygen lên, click vào Load sau đó chọn đến file id_rsa vừa lưu về máy ở trên.
Đặt lại tên cho Key comment giống trong id_rsa.pub
Click Save private key (có thể đặt tên tùy ý).
Vậy là đã thành công tạo SSH key, giờ đây bạn có thể share file key đó cho người khác hoặc bạn sử dụng để đăng nhập vào server từ máy tính cá nhân mà không cần dùng đến mật khẩu nữa.
Test đăng nhập vào VPS/Server bằng private key vừa tạo bằng phần mềm WinSCP.
Mình đã quay lại video hướng dẫn chi tiết cả quá trình tạo key, sử dụng các công cụ và đăng nhập bằng SSH Key mời bạn xem nhé:
Cám ơn bạn đã đọc, để lại câu hỏi dưới bình luận cho mình nhé.