📜  openssl 将 openssh 转换为 rsa - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:03:23.161000             🧑  作者: Mango

用 OpenSSL 将 OpenSSH 转换为 RSA

在实际工作中,我们有时需要将 OpenSSH 生成的密钥转换成 OpenSSL 的 RSA 密钥格式,本文将介绍如何用 OpenSSL 将 OpenSSH 密钥转换成 RSA 格式。

准备工作

在开始转换之前,需要安装 OpenSSL 工具,可以通过以下命令进行安装:

# Ubuntu/Debian
sudo apt-get install openssl

# CentOS/RHEL
sudo yum install openssl
转换流程
第一步:查看 OpenSSH 密钥信息

以转换私钥为例,首先需要查看 OpenSSH 私钥的信息,包括密钥格式、加密算法等,可以使用以下命令:

ssh-keygen -p -f ~/.ssh/id_rsa

此时会提示输入原始私钥的密码(如果有),输入后会显示私钥的详细信息。

第二步:提取 OpenSSH 密钥的公钥部分

由于 OpenSSL 不支持直接转换 OpenSSH 的私钥,因此需要先将私钥的公钥部分提取出来,可以使用以下命令:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

此命令将私钥的公钥部分导出到 id_rsa.pub 文件中。

第三步:将公钥转换为 OpenSSL 格式

接下来需要将公钥部分转换为 OpenSSL 格式,可以使用以下命令:

ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PKCS8 > ~/.ssh/id_rsa_openssl.pub

此命令将公钥部分转换成 PKCS8 格式,并保存到 id_rsa_openssl.pub 文件中。

第四步:生成 OpenSSL 私钥

最后一步是生成 OpenSSL 私钥,直接使用以下命令即可:

openssl genrsa -out ~/.ssh/id_rsa_openssl 2048

此命令将生成一个 2048 位的 OpenSSL 私钥,并保存到 id_rsa_openssl 文件中。

总结

通过以上步骤,我们就可以成功将 OpenSSH 密钥转换成 OpenSSL 的 RSA 密钥格式,从而适应更多场景的需要。