Hotline : 1800 1093 - 07 088 44444
Thích
Chia sẻ

Hướng dẫn sử dụng và tạo SSH key đơn giản nhất

28/04/2021

Việc tạo SSH key cho server sẽ tăng tính bảo mật hơn. Vậy SSH key là gì? Cách tạo SSH Key cho server của mình? Bài viết này sẽ hướng dẫn cho các bạn chi tiết và cụ thể nhất.

tao-ssh-key
Cách tạo SSH Key

SSH Key là gì?

Secure Shell (hay còn gọi là SSH) là một giao thức mật mã cho phép người dùng thực hiện dịch vụ qua các mạng không được bảo mật. SSH Key sẽ mang đến nhiều sự bảo mật về đăng nhập hơn là chỉ dùng mật khẩu thông thường. Trong khi mật khẩu thông thường có thể bị bẻ khóa thì SSH Key gần như là không thể giải mã.

Việc tạo một cặp Key sẽ cung cấp hai chuỗi ký tự: Một public key và một private key. Public key có thể được đặt ở bất kỳ server nào. Sau đó mở khóa bằng cách kết nối với máy client đã có private key. Khi cả hai đã khớp nhau, hệ thống sẽ mở khóa mà không cần mật khẩu. Ta còn có thể bảo vệ private key bằng một passphrase để tăng cường sự bảo mật.

Trong các lệnh ở bài viết này, sẽ có một số giá trị được highlight – chính là các biến, hãy thay thế chúng bằng các giá trị riêng của mình.

Điều kiện để kích hoạt SSH key trên Windows 10

  • Hệ thống đang chạy Windows 10
  • User account với quyền quản trị
  • Truy cập được vào command prompt
  • Một trình duyệt web (tùy chọn, dùng để download PuTTY)

Hướng dẫn tạo SSH key

1. Tạo một RSA Key Pair

Đầu tiên hãy tạo một key pair trên máy client (có thể là máy tính riêng):

ssh-keygen -t rsa

2. Lưu trữ key và passphrase

Khi nhập lệnh Gen Key, bạn sẽ nhận được một số câu hỏi:

Enter file in which to save the key (/home/demo/.ssh/id_rsa):

Nhấn Enter, lưu file vào user home (trong bài viết này sẽ sử dụng tên của user là demo để làm mẫu).

Enter passphrase (empty for no passphrase):

Passphrase được sử dụng hay không thì tùy thuộc vào người dùng. Việc sử dụng passphrase mang lại một số lợi ích: tính bảo mật của key không bao giờ được hiển thị với bất kỳ ai khác, cho dù nó được mã hóa như thế nào. Nếu private key được bảo vệ bằng passphrase rơi vào tay user trái phép, họ sẽ không thể đăng nhập vào các tài khoản cho đến khi tìm ra được passphrase. Tất nhiên, nhược điểm duy nhất của passphrase là phải nhập nó mỗi khi sử dụng key pair.

Toàn bộ quá trình tạo key sẽ như sau:

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

Public key hiện nằm trong /home/demo/.ssh/id_rsa.pub. Private key (identification) hiện nằm trong /home/demo/.ssh/id_rsa.

3. Sao chép Public Key

Khi key pair đã được tạo, hãy đặt public key trên server mà chúng ta muốn sử dụng.

Sao chép public key vào file authorized_keys của máy bằng lệnh ssh-copy-id. Đảm bảo thay thế username và địa chỉ IP như mẫu bên dưới.

ssh-copy-id demo@198.51.100.0

Lưu ý: Nếu sử dụng Mac, ssh-copy-id sẽ không được cài đặt trên hệ thống. Tuy nhiên có thể cài đặt nó bằng Homebrew:

brew install ssh-copy-id

Ngoài ra còn có thể dán các key bằng SSH:

cat ~/.ssh/id_rsa.pub | ssh demo@198.51.100.0 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Cho dù chọn sử dụng lệnh nào thì các dòng sau sẽ vẫn hiển thị:

The authenticity of host '198.51.100.0 (198.51.100.0)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '198.51.100.0' (RSA) to the list of known hosts.
user@198.51.100.0's password:

Thông báo này đảm bảo rằng không có extra key nào được thêm vô.

Bây giờ hãy tiếp tục và đăng nhập vào user profile mà không cần phải nhập mật khẩu. Tuy nhiên, nếu đặt passphrase khi tạo SSH key, sẽ có yêu cầu nhập passphrase tại thời điểm đó (cũng như cho mọi lần đăng nhập kế tiếp).

4. Vô hiệu hóa mật khẩu cho root login

Khi đã sao chép các SSH Key vào server của mình và đảm bảo rằng có thể đăng nhập bằng SSH Key. Hãy hạn chế root login thành chỉ có thể đăng nhập thông qua SSH Key.

Để thực hiện việc này, mở file SSH config:

sudo nano /etc/ssh/sshd_config

Trong file đó, hãy tìm dòng PermitRootLogin và sửa đổi nó như bên dưới để đảm bảo rằng user chỉ có thể sử dụng SSH Key:

/etc/ssh/sshd_config
PermitRootLogin without-password

Lưu và đóng file khi đã hoàn tất.

Để lưu những thay đổi này, dùng lệnh sau:

sudo systemctl reload sshd.service

Kích hoạt SSH Key Windows 10 bằng OpenSSH Client

1. Kiểm tra OpenSSH Client được cài đặt chưa

Đầu tiên, kiểm tra xem bạn đã cài đặt OpenSSH client chưa:

1. Mở panel Settings, nhấp vào Apps.

2. Dưới heading Apps and Features, click vào Optional Features.

Tạo SSH Key Windows 10 bằng OpenSSH Client
Tạo SSH Key Windows 10 bằng OpenSSH Client

3. Lướt xuống list để tìm xem OpenSSH Client được liệt kê chưa

  • Nếu chưa, click vào dấu + bên cạnh Add a feature.
  • Trượt xuống dưới danh sách để tìm và chọn OpenSSH Client.
  • Cuối cùng, nhấp vào Install.
Hướng dẫn tạo SSH key đơn giản
Hướng dẫn tạo SSH key đơn giản

2. Mở Command Prompt

1. Nhấp vào Windows key

2. Nhập cmd

3. Dưới phần Best Match, chuột phải vào Command Prompt

4. Nhấn vào Run as Administrator

Cách tạo SSH Key bằng OpenSSH Client
Cách tạo SSH Key bằng OpenSSH Client

5. Nếu được thông báo, chọn Yes ở trong phần pop-up Do you want to allow this app to make changes to your devide?

3. Sử dụng OpenSSH để tạo SSH Key Pair

1. Trong command prompt, nhập:

ssh-keygen

2. Theo mặc định, hệ thống sẽ lưu key vào C:\Users\your_username\.ssh\id_rsa. Bạn có thể sử dụng tên mặc định, hoặc chọn các tên khác theo ý mình. Việc này có thể giúp phân biệt các key khác nhau, nếu bạn dùng nhiều key pair. Để lựa chọn các tùy chọn mặc định, chọn Enter:

kích hoạt SSH Key Pair
Kích hoạt SSH Key Pair

Lưu ý: Nếu file có tên tương tự đã tồn tại, bạn sẽ được hỏi xem có muốn ghi đè file đó không.

3. Sau đó bạn sẽ được yêu cầu enter a passphrase. Nhấn Enter để bỏ qua bước này.

4. Hệ thống sẽ kích hoạt key pair, rồi hiển thị key fingerprint và một randomart image.

5. Mở file browser của bạn.

6. Điều hướng đến C:\Users\your_username\.ssh.

7. Bạn sẽ thấy có hai file. Nhận dạng sẽ được lưu trong file id_rsa và public key được gắn nhãn id_rsa.pub. Đây chính là SSH key pair của bạn.

Tạo SSH Key
Tạo SSH Key

Lưu ý: Thông thường, public key sẽ được xác định bằng phần mở rộng .pub. Bạn có thể sử dụng Notepad để xem nội dung của private và public key.

Kích hoạt SSH Key Windows 10 bằng PuTTY

Trước khi OpenSSH được đi kèm với Windows, công cụ PuTTY từng là tiêu chuẩn vàng cho việc kích hoạt SSH key.

1. Cài đặt PuTTY

1. Đi đến trang của developer, download trình cài đặt PuTTY:

2. Nhấp đúp chuột vào file đã donwload, rồi làm theo trình cài đặt wizard để cấu hình, trừ khi bạn có nhu cầu cụ thể để thay đổi. Click vào Next rồi đi đến màn hình tiếp theo.

Tạo SSH Key Windows 10 bằng PuTTY
Tạo SSH Key Windows 10 bằng PuTTY
  • Chọn cài đặt product features PuTTY. Chọn các cài đặt mặc định nếu bạn không có nhu cầu khác. Click Next để sang màn hình tiếp theo.
Hướng dẫn kích hoạt SSH key
Hướng dẫn kích hoạt SSH key
  • Khi quá trình hoàn tất, chọn Finish để thoát trình cài đặt wizard.

2. Chạy PuTTY SSH Key Generator

  1. Nhấp Windows key.
  2. Nhập vào puttygen.
  3. Dưới phần Best Match, chuột phải vào PuTTYgen.
  4. Click Run as administrator.
  5. Nếu được thống báo, click Yes trên pop-up Do you want to allow this app to make changes to your device? 

3. Sử dụng PuTTY để tạo SSH Key Pair

Quá trình dưới đây sẽ kích hoạt key RSA, một loại thuật toán mã hoá cổ điển, được sử dụng rộng rãi. Công cụ keygen PuTTY cũng cung cấp một số thuật toán khác – DSA, ECDSA, Ed22519, SSH-1 (RSA).

Nếu bạn yêu cầu một thuật toán mã hóa khác, hãy tùy chọn thuật toán mong muốn trong heading Parameters trước khi kích hoạt key pair.

1. Trong cửa sổ PuTTY Key Generator, click Generate.

2. Di chuyển con chuột quanh các box xám để lấp đầy thanh màu xanh.

sử dụng puTTy để tạo SSH Key Pair
Sử dụng puTTy để tạo SSH Key Pair

3. Lưu lại public key:

  • Click vào nút có nhãn Save public key.
  • Chọn một địa điểm để lưu key.
  • Đặt tên key (ví dụ như putty_key.pub)
public key generator
Public key generator

4. Lưu lại private key:

  • Nhấp vào menu Conversions ở phía trên
  • Chọn Export OpenSSH Key
  • Bạn sẽ được yêu cầu xem có muốn lưu key mà không có passphrase không. Chọn Yes.
  • Chọn địa điểm lưu key (thường là cùng folder với public key).
  • Đặt lên key (ví dụ: putty_key).

Lời kết

Hy vọng bài viết trên giúp bạn tạo được SSH key và sử dụng đơn giản. Nếu có thắc mắc hay đóng góp ý kiến, mời bạn để lại bình luận phía dưới bài viết này. Vietnix xin chân thành cảm ơn bạn!

Nếu bạn có thắc mắc hay có vấn đề cần hỗ trợ, bạn có thể liên hệ trực tiếp với Vietnix thông qua các kênh sau:
  • Hotline: 1800 1093 - 07 088 44444
  • Email: support@vietnix.vn
  • Hoặc chat trực tiếp với Vietnix thông qua biểu tượng Livechat ở góc phải màn hình. Đội ngũ chuyên viên của chúng tôi luôn sẵn sàng tư vấn và hỗ trợ bạn 24/7.
Vietnix hiện đang có chương trình khuyến mãi lớn nhất trong năm, giảm giá 50%  dịch vụ Hosting. Đăng ký dùng thử ngay và Vietnix sẽ hoàn tiền 100% nếu quý khách không hài lòng với chất lượng sản phẩm, dịch vụ!
Mình là Bo - admin của Quản Trị Linux. Mình đã có 10 năm làm việc trong mảng System, Network, Security và đã trải nghiệm qua các chứng chỉ như CCNP, CISSP, CISA, đặc biệt là chống tấn công DDoS. Gần đây mình trải nghiệm thêm Digital Marketing và đã hòan thành chứng chỉ CDMP của PersonVUE. Mình rất thích được chia sẻ và hỗ trợ cho mọi người, nhất là các bạn sinh viên. Hãy kết nối với mình nhé!
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments