Cách dùng Tạo khóa SSH
- Giữ Ed25519 (hoặc chọn RSA 4096 nếu máy chủ của bạn khá cũ).
- Đặt chú thích, thường là
ban@maytinh. - Nhấn Tạo cặp khóa.
- Lưu khóa riêng dưới tên
~/.ssh/id_ed25519và thêm khóa công khai vào GitHub hoặcauthorized_keys.
Cài đặt khóa
# save the private key and lock it down
mv ~/Downloads/id_ed25519 ~/.ssh/
chmod 600 ~/.ssh/id_ed25519
# optional: add a passphrase
ssh-keygen -p -f ~/.ssh/id_ed25519
# on the server (or paste into GitHub → Settings → SSH keys)
cat id_ed25519.pub >> ~/.ssh/authorized_keys
OpenSSH từ chối khóa riêng mà người dùng khác có thể đọc, nên chmod 600 là bắt buộc. Bản thân thư mục ~/.ssh nên có quyền 700.
Ed25519, RSA hay ECDSA?
| Loại | Độ dài khóa công khai | Ghi chú |
|---|---|---|
| Ed25519 | ~80 ký tự | GitHub và OpenSSH khuyên dùng; nhanh và an toàn |
| RSA 4096 | ~720 ký tự | Hoạt động với máy chủ rất cũ và một số thiết bị phần cứng |
| ECDSA P-256 | ~140 ký tự | Được hỗ trợ rộng rãi; thường vẫn nên ưu tiên Ed25519 |
Fingerprint
Chuỗi SHA256:… hiển thị ở trên là thứ mà GitHub, GitLab và ssh-keygen -lf dùng để hiển thị khóa, nên bạn có thể kiểm tra mình đã tải lên đúng khóa. Khi kết nối tới máy chủ lần đầu, hãy so sánh fingerprint host key của máy chủ theo cách tương tự.
Lưu ý bảo mật
Khóa được tạo bằng Web Crypto API và bộ sinh số ngẫu nhiên của hệ điều hành, và không bao giờ được gửi đi đâu. Khóa riêng hiện không được mã hóa; bạn có thể thêm passphrase bằng ssh-keygen -p và nạp vào ssh-agent cho tiện. Với máy chủ production, nếu không muốn dùng trình duyệt, bạn cũng có thể tạo khóa cục bộ bằng ssh-keygen -t ed25519, cách này cũng đơn giản không kém.
Cần định dạng PEM hoặc JWK để ký? Hãy dùng công cụ tạo khóa RSA.
Cũng được tìm dưới tên: tạo ssh key online, ssh-keygen online, ssh key generator, tạo ssh key ed25519, tạo ssh key github, deploy key generator.
Các công cụ dùng kèm tốt với Tạo khóa SSH
- Công cụ tính Chmod — Tick đọc, ghi và thực thi cho chủ sở hữu, nhóm và những người khác — hoặc nhập 755, rwxr-xr-x hoặc u=rwx,g=rx,o=rx.
- Công cụ tạo lệnh Git — Chọn một tác vụ như “hoàn tác commit cuối nhưng giữ lại thay đổi” hoặc “đổi tên nhánh trên GitHub”, điền tên nhánh của bạn và nhận ngay các lệnh Git chính xác.
- Tạo htpasswd — Tạo các dòng user:hash cho HTTP Basic Authentication trong Apache, Nginx, Traefik và Caddy, mặc định dùng bcrypt và không gửi gì lên máy chủ.
- Giải mã chứng chỉ SSL — Dán chứng chỉ PEM hoặc cả chuỗi chứng chỉ để xem cấp cho ai, bao gồm những tên miền nào, khi nào hết hạn và được ký bằng cách nào.
Câu hỏi thường gặp
Tạo khóa SSH trên trình duyệt có an toàn không?
ssh-keygen trực tiếp trên chính máy đó.Vì sao SSH báo “unprotected private key file”?
chmod 600 ~/.ssh/id_ed25519.