跳转到正文

Ed25519 密钥生成器

生成用于 EdDSA 签名、SSH 登录、签名 Git 提交和 JWT 的 Ed25519 密钥对。你会获得未加密的 PKCS #8 PEM 私钥、SPKI PEM 公钥、可直接用于 authorized_keys 的 ssh-ed25519 行(可选添加注释)、SHA-256 指纹,以及 RFC 7638 JWK 指纹。每次请求都会通过 Node 的 crypto 模块创建新密钥,且绝不会记录或存储。

重置

常见问题

为什么要使用 Ed25519?

Ed25519 提供约 128 位安全强度,密钥为 32 字节,签名为 64 字节,签名速度快,而且无需担心参数设置错误。它的签名是确定性的,因此签名时随机数生成器较弱也不会泄露密钥。它是现代 OpenSSH 的默认密钥类型。

结果使用什么格式?

私钥采用 PEM 编码的 PKCS #8 格式(BEGIN PRIVATE KEY),公钥采用 PEM 编码的 SubjectPublicKeyInfo 格式(BEGIN PUBLIC KEY),如 RFC 8410 所定义。公钥也会以 OpenSSH 使用的 ssh-ed25519 行格式提供。

我可以在 OpenSSH 中使用这个私钥吗?

OpenSSH 使用自己的格式存储 Ed25519 私钥,而此工具不会写入这种格式;许多版本的 OpenSSH 也无法加载 PKCS #8 格式的 Ed25519 文件。ssh-ed25519 公钥行可用于 authorized_keys;但如果要创建 SSH 身份文件,最简单的方法是在自己的计算机上运行 ssh-keygen -t ed25519。

密钥用于签署哪种 JWT 算法?

Ed25519 密钥用于签署 RFC 8037 定义的 EdDSA 算法。将私钥 PEM 粘贴到 JWT 生成器并选择 EdDSA,然后向验证方提供公钥 PEM 或其 JWK(kty 为 OKP,crv 为 Ed25519)。

结果中的 SHA-256 指纹是什么?

这是 OpenSSH 公钥数据块的指纹,格式为 SHA256: 后跟无填充的 base64,与 ssh-keygen -l 和服务器打印的格式完全相同。将它与服务器或 GitHub 显示的指纹比较,即可确认添加的是正确密钥。

什么是 JWK 指纹?

RFC 7638 指纹是密钥的 crv、kty 和 x 成员经 SHA-256 哈希后得到的 base64url 值。无论密钥采用何种格式,它都能标识该密钥,也是 JWT 和 JWKS 文档中方便使用的 kid。

注释会改变密钥吗?

不会。注释只会附加到 ssh-ed25519 行末尾,例如 you@laptop,以便你在 authorized_keys 中区分密钥。指纹仅根据密钥本身计算。注释最多可包含 200 个字符。

私钥经过加密吗?

不会,返回的密钥没有口令。存储前,请使用 openssl pkey -in key.pem -aes256 -out key-encrypted.pem 对其加密,并确保只有你能读取该文件。

我可以将 Ed25519 用于 TLS 证书吗?

X.509 支持 Ed25519 密钥,OpenSSL 也可以创建此类证书和请求,但浏览器和公共证书颁发机构目前尚不接受 Ed25519 密钥用于 TLS。要创建公共 TLS 证书,请使用 EC 密钥生成器生成 P-256 密钥,或使用 RSA 密钥。

生成的密钥会被保存吗?

不会。密钥对只在处理请求期间存在于内存中,并在结果中返回一次。不会记录或保存任何内容,因此离开页面前请复制两把密钥。

关于 OneClick Pro

OneClick Pro 是一个免费的工具集合,包含超过 150 种网络工具,助你处理日常工作:转换图像和单位、格式化和验证代码、检查域名和 SEO,以及处理文本、日期和数字。所有工具均可免注册、免订阅使用;你输入的内容仅用于计算结果,绝不会被存储。你可以将它用作处理临时任务的快捷工具箱,也可以收藏每天都会用到的工具。