Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn 5 bước tạo SSH Key trên Linux nhanh chóng và đơn giản

    Nguyễn Hưng

    Ngày đăng:

    09/03/2026

    Cập nhật lần cuối:

    09/03/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    09/03/2026

    Cập nhật lần cuối:

    09/03/2026

    Mục lục

    SSH Key trong Linux là một cặp khóa dùng để xác thực an toàn giữa người dùng và máy chủ thông qua giao thức SSH. Trong bài viết này, mình sẽ cung cấp một hướng dẫn toàn diện gồm 5 bước đơn giản về cách tạo và quản lý SSH Key Linux, giúp bạn nâng cao an ninh cho hệ thống của mình.

    Những điểm chính

    • Định nghĩa SSH Key: Nắm vững khái niệm SSH Key, cơ chế hoạt động của cặp khóa công khai – riêng tư để xác thực không cần mật khẩu.
    • Những lợi ích khi sử dụng SSH Key: Nhận biết các lợi ích vượt trội về bảo mật và hiệu quả quản trị so với mật khẩu truyền thống.
    • 5 bước tạo SSH trên Linux: Thành thạo quy trình 5 bước để tự tạo một cặp SSH Key an toàn bằng lệnh ssh-keygen.
    • Lưu ý quan trọng: Biết được các lưu ý quan trọng để bảo mật khóa riêng tư và cấu hình máy chủ an toàn.
    • Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề nâng cao khi tạo SSH Key

    SSH Key là gì?

    SSH Key là một phương thức xác thực danh tính người dùng khi truy cập vào máy chủ từ xa thay thế cho mật khẩu truyền thống. Phương thức này hoạt động dựa trên mô hình mã hóa bất đối xứng, sử dụng một cặp khóa mật mã để thiết lập kết nối an toàn. Một cặp SSH Key luôn bao gồm hai thành phần:

    • Public Key: Là một chuỗi ký tự dài được đặt trên máy chủ mà bạn muốn truy cập, có thể chia sẻ công khai. 
    • Private Key: Là một chuỗi ký tự dài được lưu trữ an toàn trên máy tính cá nhân của bạn và bạn tuyệt đối không được chia sẻ với bất kỳ ai. 

    iconLưu ý

    Private Key là thông tin tuyệt đối bảo mật. Nếu để lộ file này, kẻ gian có thể xâm nhập vào hệ thống của bạn mà không cần mật khẩu.

    Khi bạn cố gắng kết nối SSH tới máy chủ:

    1. Máy client gửi yêu cầu kết nối kèm theo thông tin về khóa công khai của bạn.
    2. Máy chủ sẽ tìm khóa công khai tương ứng trong file authorized_keys.
    3. Nếu tìm thấy, máy chủ sẽ tạo ra một thử thách được mã hóa bằng khóa công khai.
    4. Máy client sử dụng khóa riêng tư để giải mã thử thách và gửi lại cho máy chủ.
    5. Nếu quá trình giải mã thành công (nghĩa là khóa riêng tư khớp với khóa công khai), máy chủ sẽ cho phép kết nối mà không cần mật khẩu.
    SSH Key là một phương thức xác thực danh tính người dùng khi truy cập vào máy chủ từ xa
    SSH Key là một phương thức xác thực danh tính người dùng khi truy cập vào máy chủ từ xa

    Những lợi ích khi sử dụng SSH Key Linux

    Nâng cao tính bảo mật

    • Ngăn chặn tấn công Brute-force: SSH Key loại bỏ nguy cơ từ các cuộc tấn công Brute-force do cấu trúc khóa không dựa trên các cụm từ có ý nghĩa mà là các dữ liệu mã hóa ngẫu nhiên, khiến việc dò tìm khóa là bất khả thi về mặt toán học.
    • Độ phức tạp mã hóa cao: Một SSH Key thường được tạo bởi các thuật toán mã hóa mạnh như RSA 2048-bit hoặc ED25519 với độ dài và độ ngẫu nhiên lớn hơn nhiều so với bất kỳ mật khẩu văn bản thông thường, đảm bảo tính an toàn trước các nỗ lực bẻ khóa.
    • Giảm thiểu bề mặt tấn công: Khi sử dụng SSH Key, quản trị viên có thể cấu hình vô hiệu hóa hoàn toàn tính năng xác thực bằng mật khẩu trên máy chủ. Điều này ngăn chặn triệt để các truy cập trái phép lợi dụng lỗ hổng mật khẩu yếu hoặc mật khẩu bị lộ.
    Sử dụng SSH Key Linux đem đến nhiều lợi ích về bảo mật
    Sử dụng SSH Key Linux đem đến nhiều lợi ích về bảo mật (nguồn: Internet)

    Cải thiện hiệu quả quản trị

    • Loại bỏ thao tác nhập liệu thủ công: Giao thức thực hiện xác thực tự động thông qua việc đối chiếu cặp khóa giúp loại bỏ bước nhập mật khẩu mỗi khi thiết lập kết nối, rút ngắn thời gian truy cập.
    • Hỗ trợ quy trình tự động hóa: SSH Key là thành phần thiết yếu để vận hành các scripts tự động hoặc các quy trình tích hợp liên tục (CI/CD), cho phép các tác vụ nền kết nối đến máy chủ mà không cần sự tương tác trực tiếp của người dùng.
    • Quản lý truy cập phi tập trung: Việc cấp phát hoặc thu hồi quyền truy cập được thực hiện độc lập trên từng Public Key nên bạn có thể xóa key của một cá nhân cụ thể mà không cần thay đổi mật khẩu root hay ảnh hưởng đến quyền truy cập của các thành viên khác trong hệ thống.

    5 bước tạo SSH trên Linux sử dụng ssh-keygen

    Bước 1: Đầu tiên, bạn mở terminal và gõ lệnh tạo key:

    ssh-keygen -t rsa

    Bước 2: Tiếp theo, bạn cần lựa chọn loại thuật toán, độ dài bit của khóa, hoặc bổ sung ghi chú nhận diện key thông qua các tuỳ chọn dòng lệnh:

    Thông thường, lựa chọn option -t sẽ giúp bạn xác định thuật toán tạo key, ví dụ như RSA. Nếu bạn không thêm option -t và chỉ định thuật toán khi sử dụng ssh-keygen trên các bản phân phối Linux mới, mặc định công cụ sẽ tạo key bằng thuật toán id_ed25519.

    Tuy nhiên, RSA vẫn là thuật toán mã hóa thông dụng nhất, được sử dụng rộng rãi trong nhiều hệ thống và ứng dụng hiện nay.

    Bước 3: Bạn chọn hoặc xác nhận đường dẫn lưu file key:

    Khi thông báo “Enter file in which to save the key (/home/username/.ssh/id_rsa)” xuất hiện, bạn nhấn Enter để lưu vào đường dẫn mặc định hoặc nhập tên file riêng nếu muốn tạo tên hoặc trong đường dẫn khác.

    Bước 4: Chọn đặt passphrase bảo vệ:

    Khi thông báo “Enter passphrase (empty for no passphrase)” xuất hiện, bạn có thể nhấn Enter để bỏ qua hoặc có thể nhập passphrase để tăng bảo mật.

    Bước 5: Bạn kiểm tra vị trí lưu file private và public key trong thư mục ~/.ssh:

    • Đối với file private key: ~/.ssh/id_rsa
    • Đối với File public key: ~/.ssh/id_rsa.pub
    Kiểm tra vị trí lưu file private và public key trong thư mục ~/.ssh:
    Kiểm tra vị trí lưu file private và public key trong thư mục ~/.ssh

    Khi tạo khóa bằng ssh-keygen, thuật toán RSA mặc định sẽ sử dụng độ dài 2048 hoặc 3072 bit (tùy phiên bản OpenSSH). Bạn có thể chủ động chỉ định độ dài khóa bằng tùy chọn -b:

    ssh-keygen -t rsa -b 4096

    Ngoài ra, để dễ nhận diện khóa, bạn có thể thêm nhãn mô tả bằng tùy chọn -C, ví dụ địa chỉ email:

    ssh-keygen -t rsa -b 4096 -C test@gmail.com

    Sau khi chạy lệnh, hệ thống sẽ hiển thị thông tin kết quả (output) của quá trình tạo khóa.

    Hệ thống hiển thị thông tin kết quả của quá trình tạo khóa
    Hệ thống hiển thị thông tin kết quả của quá trình tạo khóa

    Lưu ý quan trọng khi tạo SSH Key

    • Bảo mật khóa riêng: Bạn cần giữ khóa riêng tư an toàn và bảo đảm quyền truy cập file chỉ cho phép người dùng nhất định, tránh để lộ ra ngoài.
    • Đưa khóa công khai lên server: Bạn sao chép nội dung khóa công khai vào file authorized_keys trên server, cho phép xác thực không cần mật khẩu.
    • Cấu hình server SSH an toàn: Thay đổi cổng mặc định của bạn, đồng thời tắt đăng nhập trực tiếp bằng root, sử dụng firewall và giới hạn IP truy cập.
    • Kiểm tra và thiết lập quyền cho thư mục .ssh: Bạn cần đảm bảo quyền truy cập đúng (600 hoặc 700) để tránh lỗi và tăng tính bảo mật.
    • Sao lưu khóa và phương án dự phòng: Luôn có bản sao khóa riêng tư để tránh mất quyền truy cập.
    Những lưu ý quan trọng khi tạo SSH Key
    Những lưu ý quan trọng khi tạo SSH Key

    Câu hỏi thường gặp

    SSH Key nên chọn thuật toán nào là tối ưu cho hệ thống hiện đại?

    Thuật toán ED25519 được xem là lựa chọn tối ưu trên các hệ thống hiện đại nhờ hiệu năng ký, xác thực vượt trội và khả năng chống lại nhiều dạng tấn công mật mã mới, với độ dài key mặc định 256-bit nhưng có độ mạnh tương đương RSA 3072-bit.

    Nên xử lý thế nào nếu lỡ để lộ private key SSH?

    Khi phát hiện private key bị lộ, cần lập tức loại bỏ khóa công khai tương ứng khỏi file authorized_keys trên tất cả server mà key này từng được sử dụng, đồng thời tạo cặp key mới hoàn toàn. Đối với môi trường lớn, bạn nên truy vết log SSH để phát hiện dấu hiệu truy cập trái phép.

    RSA 2048-bit là gì?

    RSA 2048-bit là cặp khóa được sinh ra bởi thuật toán mã hóa bất đối xứng RSA với độ dài khóa là 2048 bit. Độ dài này thể hiện mức độ phức tạp về mặt toán học, tạo ra hàng tỷ tỷ tổ hợp khác nhau, khiến kẻ tấn công rất khó giải mã nếu không có private key. Đây là mức tối thiểu được khuyến nghị bởi nhiều tổ chức bảo mật.

    Lệnh ssh-keygen tạo RSA nên chọn 2048 hay 4096 bit?

    Theo khuyến nghị bảo mật hiện đại, độ dài 4096 bit mang lại mức bảo vệ cao hơn so với 2048 bit. Điều này đồng nghĩa với việc khóa RSA 4096 bit khó bị bẻ khóa bằng các phương pháp tấn công brute-force hiện nay, thích hợp cho môi trường yêu cầu bảo mật tối đa. Tuy nhiên, RSA 2048 vẫn đạt chuẩn an toàn cho số đông hệ thống hiện tại và có ưu điểm tạo/làm việc với key nhanh hơn RSA 4096.

    ED25519 có tốt hơn RSA 4096 không?

    ED25519 là thuật toán mã hóa đường cong elliptic hiện đại, ra đời sau RSA và được đánh giá cao về cả tốc độ và an toàn. Ưu điểm vượt trội của ED25519:
    – Kích thước khóa nhỏ hơn, tốc độ ký/xác thực nhanh gấp nhiều lần RSA kể cả khi so với RSA 4096 bit.
    – Độ bảo mật tương đương, thậm chí cao hơn RSA 4096, khó bị tổ chức hoặc cá nhân nào bẻ khóa bằng kỹ thuật hiện tại.
    – Miễn nhiễm với nhiều loại tấn công side-channel và brute-force hiện nay.

    SSH Key Linux là giải pháp xác thực bảo mật tối ưu dành cho người dùng và quản trị hệ thống Linux hiện đại. Việc sử dụng các thuật toán mạnh như RSA 4096 hoặc ED25519 sẽ giúp bạn bảo vệ hệ thống khỏi nguy cơ xâm nhập trái phép và các dạng tấn công phổ biến hiện nay. Chúc bạn tạo SSH Key Linux thành công và hẹn gặp lại bạn trong các bài viết tiếp theo của mình.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    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

    BÀI VIẾT LIÊN QUAN

    Cách dùng lệnh awk Linux để xử lý dữ liệu dạng cột tối ưu
    Cách dùng lệnh awk Linux để xử lý dữ liệu dạng cột tối ưu

    Awk Linux là lệnh được dùng để xử lý và phân tích các file văn bản. Lệnh này được thiết kế chuyên biệt để xử lý dữ liệu dạng cột, cho phép trích xuất cột, lọc theo điều kiện, tính toán và định dạng lại kết quả trên dòng lệnh với hiệu năng cao và…

    09/03/2026

    Hướng dẫn khắc phục sự cố Ubuntu No space left on device root chi tiết và nhanh chóng
    Hướng dẫn khắc phục sự cố Ubuntu No space left on device root chi tiết và nhanh chóng

    Thông báo lỗi No space left on device trên Ubuntu nghĩa là phân vùng đang dùng đã hết tài nguyên khiến hệ thống không ghi thêm dữ liệu. Nguyên nhân thường gặp nhất là do đầy dung lượng ổ đĩa hoặc hết inodes do có quá nhiều file nhỏ. Trong bài viết dưới đây, mình…

    09/03/2026

    Cách giám sát hiệu năng Linux chuyên sâu với vmstat và iostat
    Cách giám sát hiệu năng Linux chuyên sâu với vmstat và iostat

    vmstat và iostat là công cụ dòng lệnh trong sysstat dùng giám sát hiệu năng Linux. vmstat cho cái nhìn tổng quan về hệ thống (CPU, RAM), còn iostat tập trung phân tích sâu hiệu suất I/O của đĩa. Trong bài viết này, mình sẽ hướng dẫn bạn cách kết hợp vmstat và iostat để…

    09/03/2026

    Hướng dẫn sử dụng lệnh Eject Linux để quản lý thiết bị lưu trữ rời
    Hướng dẫn sử dụng lệnh Eject Linux để quản lý thiết bị lưu trữ rời

    Lệnh eject là công cụ dòng lệnh chuẩn giúp điều khiển phần cứng như ổ quang và ngắt kết nối an toàn các thiết bị lưu trữ di động như USB trước khi tháo ra, qua đó bảo đảm tính toàn vẹn dữ liệu. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử…

    09/03/2026

    linux

    system-linux

    text