07/09/2018, 10:37

Thiết lập SSH keys cho server

SSH (viết tắt của Secure Shell) là một giao thức mạng dùng để đăng nhập vào server từ xa. Do tính bảo mật của nó nên SSH là một trong những giao thức phổ biến được sử dụng bởi các Sysadmin để kết nối tới server và thực hiện các tác vụ từ xa. Trong bài viết này chúng ta sẽ tìm hiểu cách thiết lập ...

SSH (viết tắt của Secure Shell) là một giao thức mạng dùng để đăng nhập vào server từ xa. Do tính bảo mật của nó nên SSH là một trong những giao thức phổ biến được sử dụng bởi các Sysadmin để kết nối tới server và thực hiện các tác vụ từ xa. Trong bài viết này chúng ta sẽ tìm hiểu cách thiết lập SSH keys cho server.

Giới Thiệu Về SSH Keys

Để đăng nhập vào server từ xa thông qua giao thức SSH chúng ta sẽ cần cung cấp các thông tin như tên đăng nhập và mật khẩu. Tuy nhiên cách làm này vẫn chứa đựng những rủi ro về bảo mật khi chúng ta phải gõ mật khẩu. SSH keys được cho ra đời nhằm đảm bảo hơn nữa tính bảo mật khi sử dụng SSH. SSH keys bao gồm một cặp hai tập tin đi theo bộ dùng để đăng nhập vào server. Hai tập tin này còn được gọi là SSH key pair:

  • Một tập tin là private key: đây là tập tin được lưu dưới client.
  • Và một là public key: đây là tập tin được lưu trữ dưới client và có thể được bất cứ server nào.

    Sử dụng public key chúng ta sẽ không cần phải gõ mật khẩu khi đăng nhập vào server thay vào đó chúng ta sẽ chỉ cần phải cung cấp tập tin public key (đã được mã hóa).

Tạo SSH Key Pair

Để tạo SSH key pair trên Linux chúng ta mở cửa sổ dòng lệnh và chạy câu lệnh sau:

ssh-keygen

Khi chạy câu lệnh trên máy tính sẽ hỏi bạn vị trí thư mục trên máy và tên tập tin sẽ dùng cho bộ key pair:

Generating public/private rsa key pair. Enter file in which to save the key (/home/pt2000/.ssh/id_rsa):

Nếu bạn gõ Enter, máy tính sẽ chọn địa chỉ thư mục và tên mặc định.

Tiếp đó bạn sẽ được yêu cầu nhập mật khẩu passphrase cho public key. Passphrase là một lớp bảo mật nữa có thể được thêm vào cho tập tin public key. Trong trường hợp tập tin này bị đánh cắp cùng thông tin I.P của server và người dùng đăng nhập thì nếu Passphrase được cài đặt, người lấy được public key này sẽ phải nhập passphrase mới có thể đăng nhập được vào server.

Bạn có thể chọn hoặc bỏ qua passphrase và gõ Enter.

Sau bước này bạn sẽ thấy kết quả như sau:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/pt2000/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/pt2000/.ssh/id_rsa.
Your public key has been saved in /home/pt2000/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
|          .oo.   |
|         .  o.E  |
|        + .  o   |
|     . = = .     |
|      = S = .    |
|     o + = +     |
|      . o + o .  |
|           . o   |
|                 |
+-----------------+

Dòng thông báo trên nói rằng hai tập tin private key và public key đã được tạo ra với tên lần lượt là id_rsa và id_rsa.pub và được lưu trong thư mục /home/pt2000/.ssh/id_rsa.pub.

Thêm Public Key Vào Server

Bước tiếp theo chúng ta cần thực hiện đó là thêm nội dung trong tập tin public key vào server. Tập tin trên server được dùng để chứa thông tin public key của client là ~/.ssh/authorized_keys.

Trên cửa sổ dòng lệnh bạn gõ câu lệnh sau (thay test-user và 222.222.222 bằng tên username và địa chỉ I.P của server bạn muốn đăng nhập):

cat ~/.ssh/id_rsa.pub | ssh test-user@222.222.222 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Ở câu lệnh trên bạn sẽ được yêu cầu nhập mật khẩu đăng nhập vào server cho người dùng test-user.

Đăng Nhập Vào Server Dùng Public Key

Cuối cùng sau khi đã thêm public key vào server chúng ta sẽ kiểm tra lại bằng cách đăng nhập từ dưới client sử dụng tập tin này. Trên cửa sổ dòng lệnh bạn chạy câu lệnh sau (thay thông tin người dùng và địa chỉ I.P bằng thông tin của server bạn cần đăng nhập):

ssh -i ~/.ssh/id_rsa.pub test-user@222.222.222

Nếu sử dụng passphrase cho public key ở bước tạo SSH keys bạn sẽ được yêu cầu nhập pass này:

Enter passphrase for key '/home/pt_2000/.ssh/id_rsa':

Bạn sẽ thấy lúc này việc đăng nhập được thực hiện thành công mà không cần phải nhập mật khẩu.

0