我遇到了一个问题,当我从1 1password导出一个密钥,并与ssh -i一起使用时,我得到
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密钥文件,
openssl genpkey -algorithm ed25519 -out private.pemprivate.pem)从PKCS#8转换为OpenSSH格式?当我试着和ssh-keygen在一起的时候
$ ssh-keygen -i -f private.pem -m pkcs8
do_convert_from_pkcs8: private.pem is not a recognised public key format发布于 2023-01-14 03:08:59
是的,有一种方法可以将私有Ed25519密钥从PKCS#8转换为OpenSSH格式。您可以使用OpenSSH附带的ssh-keygen命令行工具来转换键。该命令的基本语法如下:
ssh-keygen -i -f keyfile.pem -m pkcs8其中keyfile.pem是PKCS#8私钥的文件名。-i标志告诉ssh-keygen导入一个键,-f标志指定输入文件,-m标志将密钥格式指定为pkcs8。
运行此命令时,ssh-keygen将转换密钥并将其输出到终端。然后,可以将输出重定向到文件,以OpenSSH格式保存它:
ssh-keygen -i -f keyfile.pem -m pkcs8 > openssh-keyfile.pem如果您试图转换ssh-agent或ssh-add中使用的密钥,则必须先从密钥中移除密码,否则当将密钥添加到代理时,仍然会提示您输入密码。
下面的命令将提示您输入一个新的密码:
ssh-keygen -i -f keyfile.pem -m pkcs8 | ssh-keygen -p -m pemhttps://security.stackexchange.com/questions/267711
复制相似问题