Web Crypto · 100% 客户端
Ed25519 更小、更快、更现代 — 推荐。RSA-4096 生成需数秒。
功能说明
SSH 密钥生成器用你浏览器的 Web Crypto API 创建 Ed25519 或 RSA(2048/4096 位) SSH 密钥对——100% 客户端运行,不涉及任何服务器。公钥以标准的单行 OpenSSH 格式输出(ssh-ed25519 AAAA... comment 或 ssh-rsa AAAA... comment),可以直接粘贴进 ~/.ssh/authorized_keys 或 GitHub/GitLab 的 deploy-keys 输入框。Ed25519 私钥采用现代的无加密 -----BEGIN OPENSSH PRIVATE KEY----- 格式编码(与 OpenSSH 7.8 起 ssh-keygen 写出的格式相同);RSA 私钥是 PKCS#8 PEM。每把密钥还会附带它的 SHA256 指纹(SHA256:...)——OpenSSH 标准——让你确认服务器接受的密钥就是你生成的这把。
使用方法
- 选择算法:Ed25519(推荐——小巧、快速、现代)、RSA-2048,或 RSA-4096(生成需要几秒钟)。
- 可选:输入注释——按惯例是
user@host——它会附加在公钥行末尾。 - 按下 Generate key pair。
- 复制或下载公钥(
id_ed25519.pub/id_rsa.pub)和私钥(id_ed25519/id_rsa)。 - 把公钥添加到你服务器上的
~/.ssh/authorized_keys。
示例
带注释的 Ed25519:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBxT0... gab@cosmo
SHA256:q3MD1n+X8kPfzCt2VbY0R4hJm5N6sT7uW8xY9zA0bC1
RSA-2048 公钥(指数 65537,2048 位模数):
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... gab@cosmo
私钥格式:
-----BEGIN OPENSSH PRIVATE KEY----- (Ed25519)
-----BEGIN PRIVATE KEY----- (RSA, PKCS#8)
补充说明
- 零服务器接触: 密钥对由你浏览器的 Web Crypto API 生成。没有任何内容被传输、记录或存储——刷新页面密钥就没了。想保留的东西请自行保存。
- 为什么选 Ed25519? 密钥只有 32 字节(RSA 为 256+ 字节),生成瞬间完成,签名/验证更快。OpenSSH 自 6.5(2014 年)起就支持它。RSA-2048 对较旧的服务器仍是安全的后备;RSA-4096 只在策略要求时使用。
- 指纹:
SHA256:+ 原始公钥 blob 的 SHA-256 摘要的base64base64An encoding representing binary data as 64 safe ASCII characters, so it survives transport through text-only channels. It encodes — it does not encrypt.
——与ssh-keygen -lf打印的完全一致。可以与你服务器或ssh-add -l报告的指纹对照。 - 没有口令层: 这些私钥未加密(Ed25519 为 OpenSSH 的 “cipher none”,RSA 为标准 PKCS#8)。用文件权限(
chmod 600)保护它们,或在你自己的机器上用ssh-keygen -p -f id_ed25519添加口令。 - 私钥保密: 永远不要把私钥粘贴到任何地方。只有公钥(
*.pub行)是用来分享的。 - 相关工具: 密码生成器(选一个口令)、文件加密器(保护静态的敏感文件)。