HomeBlogSSH key là gì? Cách tạo và bảo mật SSH key đơn giản

SSH key là gì? Cách tạo và bảo mật SSH key đơn giản

Locker blog reading time6 phút để đọc
Locker Avatar

anhtp

05/08/2024
Copy

Winston is a highly experienced digital marketing professional, specializing in Cybersecurity, IT services, and Software as a Service (SaaS).

Reading Time: 6 minutes

SSH key đóng vai trò then chốt trong việc xác thực và bảo mật kết nối. Bằng cách sử dụng SSH key, bạn có thể tạo ra một lớp bảo mật vượt trội so với các phương pháp truyền thống như mật khẩu. Trong bài hướng dẫn này, chúng ta sẽ khám phá chi tiết về SSH key, từ các khái niệm cơ bản đến cách tạo SSH key và bảo mật chúng, nhằm trang bị cho bạn những kiến thức cần thiết để tận dụng tối đa lợi ích của công cụ quan trọng này.

1. SSH key là gì?

Như các bạn đã biết, giao thức mạng SSH được sử dụng rộng rãi để thiết lập kết nối an toàn giữa hai thiết bị mạng, cho phép người dùng truy cập và quản lý hệ thống từ xa một cách bảo mật. Một trong những phương thức xác thực mạnh và phổ biến nhất trong giao thức SSH là sử dụng SSH key pair (cặp khóa SSH). Các khóa này là phần tối quan trọng của cơ chế xác thực SSH. SSH key bao gồm một cặp khóa: khóa công khai và khóa riêng tư.

  • Khóa công khai (Public key): Được cài đặt trên máy chủ SSH mà bạn muốn kết nối đến. Khóa này được chia sẻ công khai.
  • Khóa riêng tư (Private key): Nằm trên máy tính của người dùng và được bảo mật. Khóa này được sử dụng để xác minh danh tính của người dùng khi kết nối đến máy chủ.

Khi thực hiện tạo một SSH key, bạn sẽ có cả Public Key và Private Key. Public key cần được upload lên máy chủ, còn cái Private key sẽ lưu ở máy người dùng.

Khi đăng nhập vào máy chủ, bạn sẽ cần gửi yêu cầu đăng nhập kèm theo Private Key đến server, server sẽ kiểm tra Private key của bạn có khớp với Public key có trên server hay không, nếu có thì việc đăng nhập sẽ thành công.

Quá trình xác thực này an toàn hơn so với việc sử dụng mật khẩu truyền thống, đồng thời cũng giúp bảo vệ các thông tin quan trọng của bạn khỏi các cuộc tấn công từ internet.

>> Xem thêm: Tiềm ẩn nguy cơ an ninh mạng do API lưu hardcode

2. Ưu điểm của SSH key so với mật khẩu truyền thống

Có rất nhiều ưu điểm để các quản trị viên sử dụng SSH key thay vì mật khẩu thông thường. Dưới đây là một số lý do nổi bật:

  1. Tính bảo mật cao hơn: SSH key sử dụng một cặp khóa, trong đó Private key được lưu trữ trên máy tính cá nhân của người dùng và không bao giờ được chuyển qua mạng. Điều này giúp giảm nguy cơ bị trộm thông tin đăng nhập.
  2. Khó đoán: Khóa SSH có thể dài hơn rất nhiều so với mật khẩu thông thường và được tạo ra một cách ngẫu nhiên, khiến chúng gần như miễn nhiễm với các cuộc tất công brute-force.
  3. Không thể bị dò lại: Khóa SSH không bao giờ được gửi qua mạng, do đó không có nguy cơ bị dò lại như mật khẩu có thể bị theo dõi bởi các công cụ đánh cắp mật khẩu.
  4. Cơ chế xác thực mạnh mẽ hơn: Khóa SSH sử dụng public key cryptography, cung cấp một cơ chế xác thực mạnh mẽ hơn so với mật khẩu đơn giản.
  5. Dễ dàng quản lý hơn: Với mật khẩu, người dùng có thể có xu hướng sử dụng mật khẩu yếu hoặc sử dụng mật khẩu giống nhau cho nhiều tài khoản. Sử dụng SSH key có thể dễ dàng quản lý và chuyển giao giữa các hệ thống mà không cần phải nhớ nhiều mật khẩu.’

>> Có thể bạn quan tâm: Bảo mật tuyệt đối secrets của bạn một cách đơn giản và tập trung

3. Cách tạo SSH Key như thế nào?

Khi tạo SSH key, bạn sẽ phải lưu ý đến ba thành phần sau:

  • Public Key: copy ký tự key này và lưu vào file ~/.ssh/authorized_keys trên server của bạn
  • Private Key: key này sẽ được lưu trên máy tính của bạn và cần được thiết lập phiên SSH để có thể login
  • Passphrase: đây là mật khẩu để mở Private Key, nếu bạn không đặt password cho Private Key, có thể ấn enter để bỏ qua

Hướng dẫn từng bước để tạo SSH key:

Để tạo SSH key, bạn cần một phần mềm tạo khóa như ssh-keygen trên Linux/Mac hoặc PuTTYgen trên Windows.

  1. Trên Linux/Mac:
    • Mở terminal và chạy lệnh
      ssh-keygen
      

      Theo mặc định, các phiên bản gần đây của ssh-keygen sẽ tạo cặp khóa RSA 3072 bit, đủ an toàn cho hầu hết các trường hợp sử dụng (bạn có thể tùy ý chuyển cờ -b 4096 để tạo khóa 4096 bit lớn hơn).

    • Sau khi nhập lệnh, bạn sẽ thấy kết quả đầu ra sau:
      Output
      Generating public/private rsa key pair.
      Enter file in which to save the key (/your_home/.ssh/id_rsa):
      

      Nhấn enter để lưu cặp khóa vào thư mục con .ssh/ trong thư mục chính của bạn hoặc chỉ định đường dẫn thay thế.

      Nếu trước đây bạn đã tạo cặp khóa SSH, bạn có thể thấy lời nhắc sau:

      Output
      /home/your_home/.ssh/id_rsa already exists.
      Overwrite (y/n)?
      

      Nếu bạn chọn ghi đè khóa, bạn sẽ không thể xác thực bằng khóa trước đó nữa. Hãy hết sức cẩn thận khi chọn có, vì đây là một quá trình ghi đè không thể khôi phục lại khóa.

    • Tạo passphrase:
      Enter passphrase (empty for no passphrase):
      

      Tại đây, bạn có thể tùy ý nhập mật khẩu. Passphrase bổ sung thêm một lớp bảo mật để ngăn người dùng trái phép đăng nhập.

      Your identification has been saved in /your_home/.ssh/id_rsa
      Your public key has been saved in /your_home/.ssh/id_rsa.pub
      The key fingerprint is:
      SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host
      The key's randomart image is:
      +---[RSA 3072]----+
      |                .|
      |               + |
      |              +  |
      | .           o . |
      |o       S   . o  |
      | + o. .oo. ..  .o|
      |o = oooooEo+ ...o|
      |.. o *o+=.*+o....|
      |    =+=ooB=o.... |
      +----[SHA256]-----+
      

      Bây giờ bạn có Public key và Private key mà bạn có thể sử dụng để xác thực.

  2. Trên Windows:
    • Tải và cài đặt PuTTYgen.

    Trên trang web PuTTY, tải xuống tệp .msi trong Package files.

    • Mở PuTTYgen và chọn tạo một cặp khóa mới.

    Sau khi các chương trình được cài đặt, hãy khởi động chương trình PuTTYgen. Chương trình tạo khóa sẽ có giao diện như sau:

    • Tiếp theo, bạn được nhắc nhập passphrase cho khóa SSH của mình.Cách tạo SSH KeyBạn có thể tùy chỉnh các thông số ở phía dưới nếu muốn hoặc giữ nguyên các giá trị mặc định. Khi bạn đã sẵn sàng, hãy nhấp vào nút Generate ở phía bên phải.

    tạo file ssh

    • Lưu Public key và Private key vào nơi an toàn.

    Khi bạn hoàn tất, hãy nhấp vào nút Save private key và chọn một vị trí an toàn để giữ khóa. Bạn có thể đặt tên cho khóa của mình bất cứ điều gì bạn muốn và phần mở rộng .ppk sẽ tự động được thêm vào.

    Và hãy nhấp vào nút Save public key để lưu public key.

    • Sao chép Public key vào máy chủ từ xa.

4. Các phương thức bảo mật SSH Key tiêu chuẩn

Việc bảo mật SSH key rất quan trọng vì nếu Private key của bạn bị lộ, kẻ tấn công có thể truy cập vào hệ thống của bạn một cách dễ dàng. Để bảo mật khóa SSH, bạn có thể tuân thủ các quy tắc sau:

Bảo mật các khóa

  • Không chia sẻ: Không bao giờ chia sẻ Private key của bạn với bất kỳ ai.
  • Bảo vệ bằng mật khẩu: Đặt mật khẩu bảo vệ cho Private key để bảo vệ trong trường hợp máy tính của bạn bị sao chép.

Sử dụng phần mềm SSH client chính thống

  • Sử dụng các phần mềm SSH client chính thống và luôn cập nhật các phiên bản mới nhất để đảm bảo tính bảo mật.

Thực hiện bảo mật cho hệ thống SSH

  • Cấu hình máy chủ SSH chính xác: Đảm bảo cấu hình máy chủ SSH của bạn để hạn chế nguy cơ tấn công và duy trì bảo mật.

Quản lý SSH key

  • Sử dụng agent SSH: Sử dụng agent SSH để quản lý các khóa SSH và giúp bạn không cần phải nhập mật khẩu mỗi khi sử dụng khóa SSH.
  • Sử dụng passphrase: Đặt passphrase bảo vệ cho Private key để bảo vệ trường hợp máy tính của bạn bị sao chép.
  • Sử dụng các tình quản lý secrets: Trình quản lý bí mật là một hệ thống lưu trữ và quản lý dữ liệu nhạy cảm một cách an toàn, giúp bạn an tâm hơn trong việc bảo mật các thông tin quan trọng

Locker Secrets Manager giúp đơn giản hoá việc lưu trữ và quản lý các dữ liệu phục vụ vòng đời phát triển phần mềm như SSH key, API key, mật khẩu cơ sở dữ liệu. Đây là giải pháp toàn diện giúp:

  • Bảo mật lưu trữ secrets: Lưu trữ và quản lý secrets một cách an toàn.
  • Quét và phát hiện lộ lọt secrets: Tự động quét mã nguồn để phát hiện các secrets bị lộ.
  • Quản lý quyền truy cập: Kiểm soát quyền truy cập vào các secrets để ngăn chặn truy cập trái phép.
  • Xoay vòng secrets: Thường xuyên thay đổi thông tin đăng nhập và API keys để giảm thiểu rủi ro.

>> Nếu quan tâm đến giải pháp bảo mật thông tin secrets của Locker, bạn có thể tìm hiểu thêm trong Tài liệu cài đặt của chúng tôi.

Tin mới nhất

Locker blog

Mẹo, tin tức, hướng dẫn và các best practice độc quyền của Locker

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của Locker sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.