# 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 密钥。

### 生成的密钥会被保存吗？

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

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
