Trình tạo khóa SSH

Khóa công khai (định dạng authorized_keys)
Tiếp theo

Tạo một cặp khóa SSH RSA ngay trong trình duyệt của bạn. Chọn kích thước khóa (2048, 3072 hoặc 4096 bit) và một ghi chú tùy chọn; công cụ sẽ xuất ra khóa riêng cùng một khóa công khai sẵn sàng dán vào ~/.ssh/authorized_keys. Mọi thứ chạy trong trình duyệt của bạn, nên không khóa nào rời khỏi thiết bị của bạn. Để có khóa Ed25519 hiện đại, hoặc để bảo vệ khóa bằng cụm mật khẩu, hãy chạy ssh-keygen trên máy của chính bạn.

Cách tạo một cặp khóa

  1. 1

    Chọn kích thước khóa

    RSA 3072 bit là lựa chọn mặc định được khuyến nghị: mạnh và tương thích mọi nơi. Loại 2048 bit nhanh hơn và vẫn được chấp nhận rộng rãi; loại 4096 bit thận trọng nhất nhưng chậm hơn.

  2. 2

    Thêm một ghi chú

    Thường là `user@host` hoặc một mô tả ngắn. Ghi chú được đính vào khóa công khai để bạn nhận ra nó trong các tệp `authorized_keys`.

  3. 3

    Tạo cặp khóa

    Khóa được tạo trong trình duyệt của bạn và không bao giờ được tải lên. Kích thước khóa lớn hơn sẽ mất thêm chút thời gian tính toán.

  4. 4

    Sao chép hoặc tải xuống

    Khóa riêng ở định dạng PEM (`-----BEGIN RSA PRIVATE KEY-----`) và khóa công khai trên một dòng (`ssh-rsa AAAA...`). Hãy giữ bí mật khóa riêng.

Chọn kích thước khóa

Kích thước khóa Tốc độ Bảo mật Dùng khi
RSA 2048 Nhanh Đủ dùng (tương đương 112 bit) Bạn muốn tạo nhanh nhất
RSA 3072 Vừa phải Mạnh (tương đương 128 bit) Lựa chọn mặc định được khuyến nghị cho đa số
RSA 4096 Chậm hơn Rất mạnh, phần lớn trường hợp là thừa Bạn muốn một khóa thận trọng, dùng lâu dài

Công cụ này tạo khóa RSA, loại khóa mà mọi máy chủ SSH đều chấp nhận. RSA 3072 đã tương đương độ mạnh đối xứng 128 bit, quá đủ cho việc dùng hằng ngày; loại 4096 lớn hơn và chậm tạo hơn mà không an toàn hơn đáng kể.

Bạn thích một khóa Ed25519 hiện đại? Nó ngắn hơn và nhanh hơn RSA, nhưng không được tạo ở đây. Hãy tạo một khóa trên máy của chính bạn bằng ssh-keygen -t ed25519.

Bạn nhận được gì

Công cụ xuất ra hai khối văn bản, cả hai đều được tạo trong trình duyệt của bạn:

  • Khóa riêng ở định dạng PEM, bắt đầu bằng -----BEGIN RSA PRIVATE KEY-----. Hãy giữ bí mật và đừng bao giờ chia sẻ. Khóa được tạo mà không có cụm mật khẩu; để mã hóa nó, hãy thêm một cụm mật khẩu tại máy bằng ssh-keygen -p -f id_rsa.
  • Khóa công khai trên một dòng duy nhất, theo định dạng authorized_keys của OpenSSH:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQAB... user@laptop

Ba trường là tên thuật toán (ssh-rsa), phần khóa mã hóa Base64 và ghi chú tùy chọn của bạn.

Mẹo quản lý khóa

  • Giữ khóa riêng luôn riêng tư. Một khóa riêng dạng văn bản thuần là mất trắng nếu bị đánh cắp. Lưu nó với quyền truy cập chặt chẽ và thêm cụm mật khẩu cho bất kỳ thứ gì quan trọng.
  • Mỗi mục đích một khóa. Dùng một khóa cho mỗi dịch vụ (GitHub, GitLab, production, staging) để một lần rò rỉ chỉ có phạm vi ảnh hưởng hạn chế.
  • Xoay khóa khi có người rời đi. Khi ai đó nghỉ, hãy xóa khóa công khai của họ khỏi mọi tệp authorized_keys.
  • Đừng bao giờ gửi khóa riêng. Chỉ chia sẻ khóa công khai. Hãy khắc cốt ghi tâm điều này.
  • Sao lưu bản đã mã hóa. Mất bản sao duy nhất của một khóa có thể khiến bạn bị khóa khỏi mọi máy chủ tin cậy nó.

Khóa công khai đặt ở đâu

  • Linux/Unix: ~/.ssh/authorized_keys trên máy chủ, mỗi khóa một dòng, quyền 0600 cho tệp và 0700 cho thư mục.
  • GitHub/GitLab/Bitbucket: phần cài đặt tài khoản, mục khóa SSH.
  • AWS EC2: cặp khóa được nhập, gắn với một instance khi khởi chạy.
  • Azure/GCP: cài đặt SSH của dự án hoặc instance.

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

Nếu bạn tin tưởng trang này (được phục vụ qua HTTPS, từ một máy chủ bạn xác minh), thì có. Cặp khóa được tính toán trong trình duyệt của bạn và không khóa nào được tải lên bất kỳ máy chủ nào. Dù vậy, chạy ssh-keygen trên máy của chính bạn vẫn là chuẩn mực tốt nhất, vì nó loại trừ mọi nguy cơ ở tầng trình duyệt.

Không. Công cụ này chỉ tạo khóa RSA. Để có khóa Ed25519 hiện đại, hãy chạy ssh-keygen -t ed25519 trên máy của chính bạn; nó ngắn hơn và nhanh hơn RSA và được mọi máy chủ SSH hiện nay hỗ trợ.

Không hẳn. RSA 3072 đã tương đương độ mạnh đối xứng 128 bit, quá đủ. Loại 4096 chậm hơn và lớn hơn mà không an toàn hơn đáng kể, nên 3072 là lựa chọn mặc định được khuyến nghị.

Dùng ssh-copy-id user@host nếu bạn vẫn đăng nhập được bằng mật khẩu. Nếu không, hãy tự thêm khóa công khai vào ~/.ssh/authorized_keys trên máy chủ qua bảng điều khiển của nhà cung cấp đám mây hoặc một phương thức truy cập khác.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác