将Openssh私钥转换为RSA私钥

Ele*_*nor 6 macos ssh bash openssh rsa

(我正在使用MAC)

我的id_rsa开头为

-----BEGIN OPENSSH PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

但我希望它始于

-----BEGIN RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

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

  1. 有什么方法可以将我的ids_rsa(一个openssh私钥)转移到RSA私钥?(请命令。)

  2. 如果可以转让,是否还需要转让id_rsa.pub?(请使用命令。)似乎id_rsa.pub没有像id_rsa这样的标头,所以我不确定是否也应该传输它。

谢谢!

小智 10

您具有OpenSSH格式密钥,并且需要PEM格式密钥。这对我来说并不直观,但是建议的转换方式是通过更改密钥的密码并同时以其他格式写入。该命令如下所示:

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

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

公钥应保持原样。

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

  • @TadM 我收到了这条消息。“无法加载密钥:格式无效”。我怎样才能解决这个问题? (5认同)
  • 这不会改变我的文件内容 (4认同)
  • 我发现我的问题发生只是因为密钥是椭圆生成的。常规的已正确转换 (4认同)

jer*_*nja 9

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


小智 8

以下是对带有密码短语的密钥进行就地转换对我有用的方法:

ssh-keygen -p -P "old passphrase" -N "new passphrase" -m pem -f path/to/key
Run Code Online (Sandbox Code Playgroud)

  • 对于我们这些不使用密码短语的人来说,`ssh-keygen -m pem -f /path/to/key` (4认同)
  • @jspinella,这将生成一个新密钥,覆盖现有的 /path/to/key 文件。 (2认同)
  • @TejasSarade我想你只想在末尾添加 `-e > new-key-file.pem` (2认同)