如何使用 OpenSSH 5.3 更改私钥文件的加密算法

如何使用 OpenSSH 5.3 更改私钥文件的加密算法

使用ssh-keygen,我需要生成一个 SSH 私钥文件,其中使用密码时使用的加密算法是带有 CBC 模式的 AES-128。

我知道这是 OpenSSH >= 5.4 的默认设置,发行说明其中提到:

受密码保护的 SSH 协议 2 私钥现在使用 AES-128 而不是 3DES 进行保护。这适用于新生成的密钥以及重新加密的密钥(例如通过更改其密码)。

但是我的要求是将该加密算法与 OpenSSH 5.3p1 一起使用(我无法更改 OpenSSH 版本)。

如何在不升级到 OpenSSH 5.4 或更新版本的情况下将加密算法更改为 AES-128?

答案1

ssh-keygen没有指定密码加密的选项,因此您不能简单地ssh-keygen通过更改配置文件或为其提供选项来使旧版本的行为像新版本一样,但您可以使用OpenSSL生成或转换密钥。

转换

假设你的密钥是 RSA

openssl rsa -aes128 -in <3des_protected> -out <aes128_protected>

3des_protected密钥转换为 AES128 密钥。它将要求输入三次密码:第一次用于读取旧密钥,第二次用于设置新密钥。

创建

首先创建私有部分

openssl genrsa -aes128 -out <newkey>

然后更改其权限,以便 ssh 不会抱怨chmod 600 <newkey>

然后通过发出以下代码从私钥派生出公钥:

ssh-keygen -e -f newkey > newkey.pub

相关内容