Hướng dẫn Login VPS, Server không cần Password – Dùng SSH Key

7

SSH Key Là gì?

SSH Key ssh-keygen là một thành phần tiêu chuẩn của bộ giao thức Secure Shell được tìm thấy trên các hệ thống máy tính Unix, Unix và Microsoft Windows được sử dụng để thiết lập các phiên shell an toàn giữa các máy tính từ xa qua các mạng không an toàn, thông qua việc sử dụng các kỹ thuật mã hóa khác nhau.

Thành phần chính của một SSH Key

Khi tạo ra một SSH Key, bạn cần biết sẽ có 3 thành phần quan trọng như sau:

  • Public Key (dạng file và string) – Bạn sẽ copy ký tự key này sẽ bỏ vào file ~/.ssh/authorized_keys trên server của bạn.
  • Private Key (dạng file và string) – Bạn sẽ lưu file này vào máy tính, sau đó sẽ thiết lập cho PuTTY, WinSCP, MobaXterm,..để có thể login.
  • Keypharse (dạng string, cần ghi nhớ) – Mật khẩu để mở private key, khi đăng nhập vào server nó sẽ hỏi cái này.

Và một SSH Key bạn có thể sử dụng cho nhiều server khác nhau.

Cách thức hoạt động của SSH Key

SSH Key bạn cứ hiểu đơn giản là một phương thức chứng thực người dùng truy cập bằng cách đối chiếu giữa một key cá nhân (Private Key) và key công khai(Public Key).

Private key và Public key luôn có liên hệ chặt chẽ với nhau để nó có thể nhận diện lẫn nhau. Mình nói vậy cho bạn dễ hình dung nhé, khi tạo một SSH Key thì bạn sẽ có cả 2 loại key này. Sau đó bạn mang cái public key bỏ lên máy chủ của bạn, còn cái private key bạn sẽ lưu ở máy và khi đăng nhập vào server, bạn sẽ gửi yêu cầu đăng nhập kèm theo cái Private Key này để gửi tín hiệu đến server, server sẽ kiểm tra xem cái Private key của bạn có khớp với Public key có trên server hay không, nếu có thì bạn sẽ đăng nhập được.

Nội dung giữa Private Key và Public Key hoàn toàn khác nhau, nhưng nó vẫn sẽ nhận diện được với nhau thông qua một thuật toán riêng của nó.

Bạn cứ hình dung Private Key là chìa khóa, còn Public Key là ổ khóa. Một khi chìa khóa mà vừa khít với ổ khóa thì cửa sẽ được mở, thế thôi.

Cách tạo SSH Key

 Đối với Windows

Nếu bạn sử dụng Windows thì sẽ dùng phần mềm PuTTY-Gen để tạo SSH, bạn có thể tải PuTTY-Gen bản mới nhất tại đây hoặc tại đây

Tải xong bạn hãy mở ra, bạn chọn các tùy chọn như trong ảnh dưới rồi ấn Generate.

 

Trong lúc tạo, rê chuột xung quanh khung trắng để khởi tạo key nhanh hơn. Nếu bạn đã có Private Key thì chỉ cần nhấn Load để tạo Public Key tương ứng(dùng khi convert Private Key dạng OpenSSH sang).

Sau khi tạo xong, màn hình hiển thị Public Key. Bạn có thể thiết lập Passphrase và Key Comment. Sau đó click Public keySave private key để lưu key lại. Public key sẽ là cái đoạn mà bạn sẽ copy bỏ vào server.

Đối với Linux/Ubuntu (và macOS)

Bạn có thể tạo cặp Key trên VPS Linux bất kỳ hoặc trên macOS thông qua Terminal bằng dòng lệnh bên dưới.

Trong quá trình cài đặt, chương trình sẽ hỏi bạn nơi lưu key (mặc định nó sẽ lưu vào /root/.ssh) và mật khẩu sử dụng private key (bạn nên thể bỏ trống)

Chuỗi key sau khi tạo xong:

Key được tạo theo thuật toán mã hóa RSA, độ dài 2048 bit và lưu tại /root/.ssh/. Trong đó, Private Key là id_rsa còn Public Key là id_rsa.pub ( là cái bạn mang lên cài trên VPS), đều là OpenSSH Key.

Thêm public key vào VPS

Đăng nhập vào server Linux với user mà bạn cần thêm key( thông thường mặc định sẽ là root). Bạn cần lưu thông tin Public Key tại ~/.ssh/authorized_keys để xác thực đăng nhập sử dụng SSH Key

Sau đó gõ lần lượt các lệnh dưới đây để tạo thư mục .ssh/ và file authorized_keys trong thư mục đó:

Sau đó mở file authorized_keys trong thư mục .ssh ở thư mục gốc của user và copy toàn bộ ký tự của Public key (id_rsa.pub) vào và lưu lại.

Sử dụng SSH Key để đăng nhập VPS

Để đăng nhập vào VPS thông qua SSH key, bạn cần sử dụng các phần mềm SSH Client như PuTTy, Bitvise, ZOC,…. Ở đây mình sử dụng PuTTY

Nếu bạn thiết lập passphrase, phần mềm sẽ yêu cầu nhập passphrase còn nếu không bạn sẽ đăng nhập vào thẳng server.

Vô hiệu hóa đăng nhập sử dụng mật khẩu

Để gia tăng bảo mật, tránh bị mất dữ liệu nếu lộ mật khẩu, bạn nên vô hiệu hoá chức năng đăng nhập bằng mật khẩu trên VPS của bạn

Để vô hiệu hóa đăng nhập sử dụng mật khẩu, bạn mở file /etc/ssh/sshd_config, tìm rồi sửa các giá trị của các tham số như ở dưới:

Qua bài này chắc bạn cũng đã hiểu được SSH Key là gì, cách thức hoạt động, cách sử dụng cũng như tầm quan trọng của nó.

Đây là một trong những việc rất quan trọng mà bạn cần làm khi tạo VPS, Server vì chúng ta không thể đăng nhập vào VPS mãi thông qua phương thức truyền thống bằng mật khẩu, nó rất nguy hiểm nếu như máy tính bạn có mã độc hoặc vô tình làm lộ mật khẩu.

Bài viết có tham khảo các nguồn khác nhau.

 

Để lại bình luận

avatar
  Nhận thông báo qua Email  
Nhận thông báo cho