OpenSSH 密钥

在浏览器中生成 Ed25519、ECDSA 或 RSA SSH 密钥对(可加密码短语),并在 OpenSSH、PKCS#8 与 SPKI PEM 之间转换。

输入内容和文件始终留在浏览器中

生成

导入

粘贴 OpenSSH、SPKI 或 PKCS#8 密钥,打开密钥文件,或将其拖放到此处。

支持 OpenSSH 公钥/私钥和 PKCS#8 PEM 文件。

生成密钥对或导入密钥后,公钥将显示在这里。

生成密钥或导入私钥后,私钥将显示在这里。

本页内容

OpenSSH 密钥工具可生成 SSH 密钥对(Ed25519、ECDSA P-256/P-384、RSA 3072/4096),并在 OpenSSH、PKCS#8 和 SPKI PEM 格式之间转换。密钥在浏览器中生成和转换,私钥不会发送到任何地方。

详细功能

生成结果为 OpenSSH 私钥(-----BEGIN OPENSSH PRIVATE KEY-----)和对应的公钥行(ssh-ed25519 AAAA…),可直接放入 authorized_keys。设置密码短语时,私钥按 ssh-keygen 的方式加密:bcrypt-pbkdf 16 轮加 aes256-ctr。密码短语按输入原样使用,包括空格。密钥生成在 Web Worker 中进行:Ed25519 和 ECDSA 只需几毫秒,RSA 4096 需要几秒到约一分钟;期间页面仍可操作,并显示已用时间和 取消 按钮。

导入 支持粘贴密钥或密钥文件(可拖放):OpenSSH 公钥行(ssh-ed25519、ecdsa-sha2-nistp256/384、ssh-rsa)、OpenSSH 私钥、SPKI PUBLIC KEY PEM,以及 PKCS#8 PRIVATE KEY / ENCRYPTED PRIVATE KEY PEM。对私钥会推导出公钥行,对公钥会显示算法和注释。转换 可将 OpenSSH 私钥转为 PKCS#8,将 OpenSSH 公钥行与 SPKI PEM 互转,并将 PKCS#8 转为 OpenSSH。

结果可复制,或下载为 id_key / id_key.pub(生成)或 imported.key / imported.pub(导入)。警告会指出较弱的选择,例如短于 3072 位的 RSA。本工具旧版本会去掉密码短语首尾空格,它生成的密钥仍可打开:如果输入的密码短语被拒绝,会尝试去掉首尾空格的版本并给出提示。

实用示例

为服务器创建新密钥:选择 Ed25519,点击 生成密钥,把公钥行(以 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5 开头)追加到服务器的 ~/.ssh/authorized_keys,并把私钥保存为 ~/.ssh/id_ed25519,权限设为 600。

为旧系统生成 RSA:设备不接受 Ed25519 时选择 RSA 4096。生成需要一些时间,会显示已用秒数,取消 可中止。

OpenSSH 公钥转 PEM:粘贴 ssh-ed25519 AAAA… user@host 并点击 转换,得到以 -----BEGIN PUBLIC KEY----- 和 MCowBQYDK2VwAyEA 开头的 SPKI PEM,这是 OpenSSL、Java 等库期望的格式。

在代码中使用 SSH 密钥:粘贴 OPENSSH PRIVATE KEY(在字段中填入其密码短语),点击 转换,得到 PKCS#8 -----BEGIN PRIVATE KEY----- 块,供不支持 OpenSSH 格式的库使用。

如何使用此工具

  1. 选择密钥类型

    在 生成 中选择 算法:Ed25519 (Recommended)、ECDSA P-256/P-384 或 RSA 3072/4096。密钥大小 仅对 RSA 可用。

  2. 可选设置密码短语

    在 密码短语(可选) 中输入短语以加密私钥;留空则生成未加密的私钥。

  3. 生成

    点击 生成密钥。生成 RSA 时会出现带已用时间和 取消 的进度条。

  4. 保存密钥

    在 公钥 和 私钥 处使用 复制 或 下载。

  5. 导入或转换现有密钥

    在 导入 中粘贴密钥或拖入密钥文件,然后点击 导入 查看,或点击 转换 更改格式。

提示和最佳实践

  • Ed25519 密钥短、快,OpenSSH 6.5+ 和主流 Git 托管平台都支持;只有在必须时才使用 RSA。
  • "ssh-rsa uses SHA-1" 警告针对的是旧的签名方案;当前的 OpenSSH 使用 RSA 密钥时采用 rsa-sha2-256/512 签名。
  • 没有密码短语的私钥只和它所在的磁盘一样安全;笔记本上的密钥请加上密码短语。
  • 以空格开头或结尾的密码短语是另一个短语;字段会显示提示,避免无意中出现。
  • 下载的私钥需要先执行 chmod 600,否则 ssh 会拒绝使用。