Openssh 私钥到 RSA 私钥

Openssh Private Key to RSA Private Key

(我正在使用 MAC)

我的 id_rsa 以

开头
-----BEGIN OPENSSH PRIVATE KEY-----

但我希望它以

开头
-----BEGIN RSA PRIVATE KEY-----

我已将 id_rsa.pub 发送给服务器管理员以获得对服务器的访问权限,因此我不想生成新密钥。

  1. 有什么方法可以将我的 id_rsa 这是一个 openssh 私钥转移到一个 RSA 私钥? (请指挥。)

  2. 如果可以转,是否也需要转id_rsa.pub? (请指挥。)好像id_rsa.pub没有像id_rsa那样的header,所以我不确定我是否应该也转移这个。

您有一个 OpenSSH 格式的密钥并想要一个 PEM 格式的密钥。这对我来说并不直观,但建议的转换方法是更改​​密钥的密码并同时以不同的格式写入。

命令如下所示:

ssh-keygen -p -N "" -m pem -f /path/to/key

它会就地更改文件,因此请备份您当前的密钥以防万一。 -N "" 会将密码设置为 none。我还没有用密码测试这个。

public 键应该没问题。

有关上述命令的完整说明,请参阅此处的 -m 选项:https://man.openbsd.org/ssh-keygen#m

以下是我使用密码短语 in-place 转换密钥的方法:

ssh-keygen -p -P "old passphrase" -N "new passphrase" -m pem -f path/to/key

如果您可以使用 linux 系统,则可以轻松实现这一目标。我正在使用 ubuntu 18.04 并执行了以下操作:

  1. 更新包:sudo apt update
  2. 安装腻子:sudo apt install putty
  3. 安装puttygen:sudo apt install putty-tools
  4. 将私钥转换为中间格式 SSHv2:puttygen yourkey -O private-sshcom -o newkey
  5. 将其转换回 RSA/PEM:ssh-keygen -i -f newkey > newkey_in_right_format

你很高兴去

  1. 安装并打开 puttygen
  2. 点击“加载现有私钥文件”
  3. 点击菜单项“转换”->“导出 OpenSSH 密钥”
  4. 保存文件