首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ED25519密钥转换为PKCS#8格式的OpenSSH私钥格式?

如何将ED25519密钥转换为PKCS#8格式的OpenSSH私钥格式?
EN

Security用户
提问于 2023-01-13 21:37:15
回答 1查看 1.8K关注 0票数 5

我遇到了一个问题,当我从1 1password导出一个密钥,并与ssh -i一起使用时,我得到

代码语言:javascript
复制
Load key "/home/user/.ssh/private_ed25519": invalid format

在谷歌上搜索,当1 1password将他们的ED25519密钥存储在PKCS#8,从他们的开发者那里中时,似乎是个问题

复制私钥会在PKCS#8中复制--1 1Password存储密钥的格式。不幸的是,OpenSSH不支持PKCS#8格式的ED25519键,只支持OpenSSH格式。下载密钥将将其转换为OpenSSH格式。RSA密钥工作的原因是因为OpenSSH确实支持PKCS#8中的RSA密钥。

他们建议使用“下载”功能,但我没有这个功能,其他很多人也没有这个功能。但应该有不止一种办法剥这只猫的皮,

您可以在ed25519中创建PKCS#8密钥文件,

代码语言:javascript
复制
openssl genpkey -algorithm ed25519 -out private.pem

是否有任何方法将私有Ed25519键(在上面的private.pem)从PKCS#8转换为OpenSSH格式?

当我试着和ssh-keygen在一起的时候

代码语言:javascript
复制
$ ssh-keygen -i -f private.pem -m pkcs8
do_convert_from_pkcs8: private.pem is not a recognised public key format
EN

回答 1

Security用户

发布于 2023-01-14 03:08:59

是的,有一种方法可以将私有Ed25519密钥从PKCS#8转换为OpenSSH格式。您可以使用OpenSSH附带的ssh-keygen命令行工具来转换键。该命令的基本语法如下:

代码语言:javascript
复制
ssh-keygen -i -f keyfile.pem -m pkcs8

其中keyfile.pem是PKCS#8私钥的文件名。-i标志告诉ssh-keygen导入一个键,-f标志指定输入文件,-m标志将密钥格式指定为pkcs8。

运行此命令时,ssh-keygen将转换密钥并将其输出到终端。然后,可以将输出重定向到文件,以OpenSSH格式保存它:

代码语言:javascript
复制
ssh-keygen -i -f keyfile.pem -m pkcs8 > openssh-keyfile.pem

如果您试图转换ssh-agent或ssh-add中使用的密钥,则必须先从密钥中移除密码,否则当将密钥添加到代理时,仍然会提示您输入密码。

下面的命令将提示您输入一个新的密码:

代码语言:javascript
复制
ssh-keygen -i -f keyfile.pem -m pkcs8 | ssh-keygen -p -m pem
票数 -1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/267711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档