根据 OpenSSH 9.6 的发行说明,它现在支持 PEM 格式的 ED25519 密钥
ssh(1)、sshd(8)、ssh-add(1)、ssh-keygen(1):添加对读取 PEM PKCS8 格式的 ED25519 私钥的支持。以前仅支持 OpenSSH 私钥格式。
我似乎无法使用 ssh-keygen 或 openssl 生成 ED25519 私钥,它实际上是一个 PEM 密钥,并被上面提到的 OpenSSH 命令所接受。
文档中的命令对我来说不起作用(仍然只产生 OpenSSH 格式的密钥,如 OpenSSH <9.6 中一样)。特别是使用 openssl 生成 ED25519 PEM 密钥也不起作用。
答案1
来自文章 使用 PEM、RSA 和 ED25519 创建 SSH 密钥:
在 Linux 上生成 PEM 密钥对
这可以根据上面介绍的两种算法生成,即 rsa 和 ed25519。
要基于 rsa 算法生成 pem 格式的密钥对,请打开终端并运行以下命令:
ssh-keygen -t rsa -b 4096 -m PEM -C [email protected]
要基于ed25519算法生成pem密钥对,请使用以下命令
ssh-keygen -t ed25519 -m PEM -C [email protected]
请记住,您可以将密钥大小 -b 4096 更改为您选择的任何大小,该大小应为 1024 的倍数,例如 2048、4096 和 8192,与计算机内存空间分配相匹配(*以更简单的术语)
需要注意的因素
- 在提示输入密钥名称时,输入一个绝对路径,并使用目标路径中不存在的新文件名来创建新密钥,或者使用已存在的名称来覆盖输入的路径位置中的现有密钥。
- 使用默认路径将覆盖使用默认密钥名称在当前生成之前创建的任何密钥。
- 在释义提示中,您可以输入您选择的任何释义,但您必须安全地保存它,因为如果没有它的释义,您将无法使用私钥。
- 您实际上可以不输入任何释义并创建一个开放密钥对,这意味着任何有权访问此私钥的人都可以自由使用它。