📅  最后修改于: 2023-12-03 15:03:23.161000             🧑  作者: Mango
在实际工作中,我们有时需要将 OpenSSH 生成的密钥转换成 OpenSSL 的 RSA 密钥格式,本文将介绍如何用 OpenSSL 将 OpenSSH 密钥转换成 RSA 格式。
在开始转换之前,需要安装 OpenSSL 工具,可以通过以下命令进行安装:
# Ubuntu/Debian
sudo apt-get install openssl
# CentOS/RHEL
sudo yum install openssl
以转换私钥为例,首先需要查看 OpenSSH 私钥的信息,包括密钥格式、加密算法等,可以使用以下命令:
ssh-keygen -p -f ~/.ssh/id_rsa
此时会提示输入原始私钥的密码(如果有),输入后会显示私钥的详细信息。
由于 OpenSSL 不支持直接转换 OpenSSH 的私钥,因此需要先将私钥的公钥部分提取出来,可以使用以下命令:
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
此命令将私钥的公钥部分导出到 id_rsa.pub
文件中。
接下来需要将公钥部分转换为 OpenSSL 格式,可以使用以下命令:
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PKCS8 > ~/.ssh/id_rsa_openssl.pub
此命令将公钥部分转换成 PKCS8 格式,并保存到 id_rsa_openssl.pub
文件中。
最后一步是生成 OpenSSL 私钥,直接使用以下命令即可:
openssl genrsa -out ~/.ssh/id_rsa_openssl 2048
此命令将生成一个 2048 位的 OpenSSL 私钥,并保存到 id_rsa_openssl
文件中。
通过以上步骤,我们就可以成功将 OpenSSH 密钥转换成 OpenSSL 的 RSA 密钥格式,从而适应更多场景的需要。