Public Key và Private Key là gì ? Cách hoạt động, khi nào sử dụng và hướng dẫn tạo chi tiết

Thái Duy Khang

Thái Duy Khang

Đăng ngày: 11/03/2026
Puclic Key va Private Key la gi 1

Trong bảo mật hệ thống, đặc biệt là khi làm việc với SSH, VPS, Git hoặc mã hóa dữ liệu, bạn sẽ thường xuyên nghe đến hai khái niệm Public KeyPrivate Key. Đây là nền tảng của cơ chế mã hóa bất đối xứng (Asymmetric Encryption) giúp xác thực và truyền dữ liệu an toàn trên Internet. Bài viết này sẽ giúp bạn nắm rõ về Public Key và Private Key

Bài viết này sẽ chuyên về kỹ thuật, không có hình ảnh, hơi khô khan, nhưng bạn đọc và làm theo sẽ dễ hiểu hơn

Public Key và Private Key là gì ?

Public Key và Private Key là một cặp khóa trong cơ chế mã hóa bất đối xứng, trong đó Public Key có thể chia sẻ công khai để mã hóa dữ liệu hoặc xác minh chữ ký, còn Private Key phải được giữ bí mật và dùng để giải mã hoặc ký dữ liệu

Public Key

Public Key là khóa công khai

Đặc điểm:

  • Có thể chia sẻ cho bất kỳ ai
  • Dùng để mã hóa dữ liệu
  • Không thể dùng để giải mã dữ liệu đã mã hóa bằng chính nó

Ví dụ:

  • Được lưu trên server
  • Dùng để xác thực SSH
  • Dùng trong SSL/TLS

Private Key

Private Key là khóa bí mật

Đặc điểm:

  • Chỉ chủ sở hữu được giữ
  • Không được chia sẻ cho người khác
  • Dùng để giải mã dữ liệu

Nếu ai đó có được Private Key, họ có thể truy cập vào hệ thống hoặc dữ liệu được bảo vệ

Cách Public Key và Private Key hoạt động

Nguyên lý hoạt động của cặp khóa như sau:

  1. Hệ thống tạo ra một cặp khóa
    • Public Key
    • Private Key
  2. Public Key được chia sẻ cho server hoặc người nhận
  3. Khi dữ liệu được mã hóa bằng Public Key
  4. Chỉ có Private Key tương ứng mới có thể giải mã

Giả sử bạn có một ổ khóa (Public Key) và chìa khóa (Private Key). Bạn có thể gửi ổ khóa cho nhiều người, khi họ muốn gửi dữ liệu cho bạn, họ khóa dữ liệu bằng ổ khóa đó, sau đó chỉ có bạn dùng Private Key mới mở được

Public Key và Private Key được sử dụng khi nào ?

Cặp khóa này được sử dụng rất nhiều trong các hệ thống bảo mật hiện đại như:

1. SSH đăng nhập VPS / Server

Đây là trường hợp phổ biến nhất, thay vì đăng nhập bằng mật khẩu thì bạn dùng SSH Key Authentication

  • Public Key lưu trên server
  • Private Key lưu trên máy cá nhân

Khi kết nối SSH, server sẽ xác thực bằng khóa thay vì mật khẩu.

Ưu điểm:

  • An toàn hơn
  • Không bị brute force password
  • Đăng nhập nhanh hơn

2. Git (GitHub, GitLab)

Public Key được dùng để xác thực khi:

  • Push code
  • Pull code
  • Clone repository

Ví dụ:

Bash
git@github.com:user/repo.git

GitHub sẽ kiểm tra Public Key đã đăng ký trong tài khoản.


3. SSL / HTTPS

Website HTTPS sử dụng cặp khóa:

  • Public Key nằm trong SSL Certificate
  • Private Key nằm trên server

Trình duyệt dùng Public Key để mã hóa dữ liệu gửi đến server


4. Mã hóa dữ liệu

Public Key / Private Key được sử dụng trong:

  • PGP Email
  • Blockchain
  • Cryptocurrency wallet
  • Digital Signature

Hướng dẫn tạo Public Key và Private Key

Có nhiều cách để tạo cặp khóa, phổ biến nhất là dùng SSH Keygen

Tạo SSH Key trên Linux / Mac

Mở terminal và chạy:

Bash
ssh-keygen -t rsa -b 4096

Hệ thống sẽ hỏi chỗ bạn muốn lưu key

Bash
Enter file in which to save the key

Nhấn Enter để lưu mặc định

Bash
~/.ssh/id_rsa

Sau khi tạo xong sẽ có

Bash
id_rsa
id_rsa.pub

Trong đó:

  • id_rsa = Private Key
  • id_rsa.pub = Public Key

Tạo SSH Key trên Windows

Mở PowerShell và nhập

Bash
ssh-keygen -t ed25519

Sau đó hệ thống sẽ hỏi chỗ bạn muốn lưu key “Enter file in which to save the key“. Nhấn Enter để lưu mặc định

Trong hình có dòng Overwrite là do máy có key sẵn nên hỏi có muốn ghi đè không, nhấn y (yes) để đồng ý hoặc n (no) là không

Nhập passphrase

Passphrase là một lớp bảo mật bổ sung cho Private Key. Khi bạn đặt passphrase, mỗi lần sử dụng Private Key để đăng nhập SSH, hệ thống sẽ yêu cầu nhập thêm passphrase này

Bạn có thể nhấn Enter để bỏ qua

Lưu ý:

  • Nếu quên passphrase, bạn sẽ không thể sử dụng Private Key đó
  • Có thể dùng ssh-agent để lưu passphrase tạm thời, giúp không phải nhập lại mỗi lần đăng nhập SSH
  • Your indentification chính là Private Key, được lưu tại C:\Users\username/.ssh/
  • Your public key chính là Public Key, được lưu tại C:\Users\username/.ssh/ với đuôi .pub

Cách sử dụng Public Key để đăng nhập SSH

Bước 1: Copy Public Key

  • Trên Linux/Mac:
Bash
cat ~/.ssh/id_ed25519.pub
  • Trên Windows PowerShell:
Bash
type $env:USERPROFILE\.ssh\id_ed25519.pub

Bạn sẽ thấy một chuỗi dạng

Bash
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... user@pc

Hãy copy toàn bộ dòng này

Bước 2: Thêm Public Key vào VPS

  • Đăng nhập VPS bằng mật khẩu lần đầu
Bash
ssh root@IP_VPS
  • Sau đó tạo thư mục SSH nếu chưa có
Bash
mkdir -p ~/.ssh

Tạo file authorized_keys:

Bash
nano ~/.ssh/authorized_keys

Dán Public Key của bạn vào, lưu lại (Ctrl+O, Enter) và thoát (Ctrl+X)

Bước 4: Phân quyền cho SSH

Đây là bước rất quan trọng, nếu quyền sai, SSH sẽ từ chối key. Chạy các lệnh sau

Bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Nếu dùng user khác root:

Bash
chown -R user:user ~/.ssh

Bước 5: Đăng nhập VPS bằng SSH Key

Bây giờ bạn có thể đăng nhập VPS bằng Private Key, mở PowerShell và nhập

Bash
ssh root@IP_VPS

Nếu Private Key nằm đúng vị trí ~/.ssh, SSH sẽ tự động dùng key. Hoặc chỉ định key thủ công

Bash
ssh -i ~/.ssh/id_ed25519 root@IP_VPS

Nếu cấu hình đúng, hệ thống sẽ đăng nhập ngay mà không cần mật khẩu


Các thuật toán khóa phổ biến

Một số thuật toán tạo key thường dùng:

Thuật toánĐộ bảo mậtKhuyến nghị
RSACaoPhổ biến
DSAThấpKhông khuyến nghị
ECDSACaoTốt
ED25519Rất caoKhuyến nghị

Hiện nay ED25519 được đánh giá:

  • Nhanh hơn
  • Bảo mật tốt hơn
  • Khóa nhỏ hơn

Một số lưu ý bảo mật quan trọng

Để bảo vệ hệ thống khi sử dụng SSH Key

Không bao giờ chia sẻ Private Key

  • Lưu Private Key trên máy cá nhân
  • Đặt quyền truy cập 600
Bash
chmod 600 ~/.ssh/id_rsa

Sử dụng Passphrase

Nếu không an tâm khi giữ Private Key bên mình, bạn có thể cân nhắc sử dụng thêm Passphrase


Không upload Private Key lên Git

Đây là lỗi rất phổ biến, nếu lỡ lộ Private Key bạn cần thực hiện ngay lập tức để tránh rủi ro:

  1. Xóa key cũ khỏi server
  2. Tạo cặp key mới

Kết luận

Public Key và Private Key là nền tảng quan trọng trong hệ thống mã hóa và bảo mật hiện đại. Chúng giúp xác thực danh tính, bảo vệ dữ liệu và thay thế phương thức đăng nhập bằng mật khẩu kém an toàn.

  • Public Key có thể chia sẻ công khai
  • Private Key phải được giữ bí mật
  • Hai khóa hoạt động theo cơ chế mã hóa bất đối xứng
  • Được sử dụng rộng rãi trong SSH, Git, HTTPS và blockchain

Việc hiểu và sử dụng đúng Public Key và Private Key sẽ giúp bạn bảo vệ hệ thống server, VPS và dữ liệu một cách an toàn hơn

Tham khảo: VPS giá rẻ

Đánh giá bài viết này

Tác giả

Thái Duy Khang
Thái Duy Khang Thiết kế & lập trình tại EZ TECH
Xin chào! Tôi là Thái Duy Khang, Senior Designer chuyên về UX/UI, với gần 10 năm kinh nghiệm trong lĩnh vực thiết kế đồ họa và hơn 7 năm tập trung vào thiết kế trải nghiệm người dùng cũng như giao diện web. Ngoài thiết kế, tôi còn có nền tảng vững chắc về lập trình Front-end (HTML, CSS, JavaScript) và WordPress, giúp tôi dễ dàng phối hợp giữa tư duy sáng tạo và khả năng triển khai thực tế. Hiện tại, tôi đang đảm nhiệm vai trò Thiết kế & Lập trình tại công ty công nghệ EZ (EZ TECH), nơi tôi tham gia vào việc xây dựng giao diện, tối ưu trải nghiệm người dùng và phát triển các sản phẩm web hoàn chỉnh.
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận