祈灵工具箱

💠SSH 密钥在线生成 - Ed25519、RSA、ECDSA 公私钥与指纹

临时需要一对 SSH 密钥,手边却没有终端?这个工具用浏览器内置的 WebCrypto 在本地生成密钥,不经过任何服务器。支持 Ed25519(推荐,需浏览器支持,会自动检测)、RSA 2048 / 3072 / 4096 和 ECDSA P-256 / P-384。生成后得到可以直接粘贴进服务器 ~/.ssh/authorized_keys 的 OpenSSH 公钥(带注释),以及 openssh-key-v1 格式的私钥:设置密码时与 ssh-keygen 一样使用 bcrypt-pbkdf 派生密钥并以 aes256-ctr 加密,轮数可调。也可以导出 PKCS#8 / SPKI 格式的 PEM,供 OpenSSL 或其它程序使用。页面会显示与 ssh-keygen -l 完全一致的 SHA256 指纹和 randomart 图案,方便核对,并给出保存私钥、设置权限、ssh-copy-id 安装公钥的命令。另一个标签页可以粘贴任意公钥(authorized_keys 行或 RFC 4716 格式),查看类型、位数、曲线、注释、指纹和 randomart,并提示 DSA、短 RSA 等不安全的密钥。请注意:密钥只存在于页面内存中,关闭页面即消失;但浏览器扩展或被入侵的电脑仍可能读到页面内容,生产服务器等重要场景请在本机终端运行 ssh-keygen。

免费 · 无需注册 · 浏览器本地处理最后更新:

正在加载工具...

如何使用SSH 密钥生成器

  1. 1选择算法(推荐 Ed25519),填写注释,可选设置私钥密码
  2. 2点击“生成密钥对”,下载私钥 id_xxx 和公钥 id_xxx.pub,核对指纹
  3. 3把私钥放到 ~/.ssh 并 chmod 600,用 ssh-copy-id 或手动把公钥追加到服务器的 authorized_keys

常见问题

在网页上生成 SSH 密钥安全吗?
密钥由浏览器的 WebCrypto 安全随机数在本地生成,页面不会把它发送到任何地方,刷新即消失。但网页环境的风险仍高于本机终端:恶意浏览器扩展、被入侵的电脑都可能读取页面内容。因此它适合测试、临时环境和学习;生产服务器、Git 签名、长期使用的密钥,建议在自己的电脑上运行 ssh-keygen -t ed25519 生成。
该选 Ed25519 还是 RSA?
优先 Ed25519:密钥短、签名快、安全性高,OpenSSH 6.5(2014 年)以后都支持。只有遇到不支持 Ed25519 的老旧系统或设备时才用 RSA,并且至少 3072 位。ECDSA 适合只接受 NIST 曲线的环境。若浏览器不支持 Ed25519,工具会提示并改用 ECDSA。
生成的私钥能直接用于 ssh 吗?
可以。私钥是 OpenSSH 自己的 openssh-key-v1 格式,与 ssh-keygen 生成的文件相同,下载后放到 ~/.ssh/ 并执行 chmod 600 即可;设置了密码的私钥用 bcrypt-pbkdf + aes256-ctr 加密,ssh、ssh-add 都能直接解密。用 ssh-keygen -y -f 私钥 可以从私钥推出公钥核对。
指纹和 randomart 有什么用?
指纹是公钥的 SHA256 摘要,首次连接服务器或把公钥交给别人时,用来确认密钥没有被替换。randomart 是同一摘要画成的图案,肉眼比较更容易。本工具的输出与 ssh-keygen -lv 完全一致,可以直接对照。