OPENSSH PRIVATE KEY转换为RSA PRIVATE KEY


OPENSSH PRIVATE KEY转换为RSA PRIVATE KEY

使用命令 ssh-keygen -t rsa 生成ssh,默认是以新的格式生成,id_rsa的第一行变成了“BEGIN OPENSSH PRIVATE KEY” 而不再是“BEGIN RSA PRIVATE KEY”,这是一种新的密钥格式, 而且很多软件对这种格式的密钥都是不支持的。此时用来msyql、MongoDB,配置ssh登陆的话,可能会报 “Resource temporarily unavailable. Authentication by key (/Users/youname/.ssh/id_rsa) failed (Error -16). (Error #35)” 提示资源不可用,这就是id_rsa 格式不对造成的。这时候就不得不把私钥转换成RSA – PEM格式。然而ssh-keygen并不提供这种格式转换的功能。

解决方案

一、生成新的RSA-PEM格式公私密钥

使用 ssh-keygen -m PEM -t rsa -b 4096来生成

  • -m 参数指定密钥的格式,PEM(也就是RSA格式)是之前使用的旧格式
  • -b:指定密钥长度;
  • -e:读取openssh的私钥或者公钥文件;
  • -C:添加注释;
  • -f:指定用来保存密钥的文件名;
  • -i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
  • -l:显示公钥文件的指纹数据;
  • -N:提供一个新密语;
  • -P:提供(旧)密语;
  • -q:静默模式;
  • -t:指定要创建的密钥类型

二、转换格式

Mac系统

1.安装putty

brew install putty

2.通过将密钥转换为PuTTy ppk格式然后再转换为RSA-PEM

# 生成一个密钥,命名为demo做为演示示例
# 转换为ppk格式
puttygen demo -o demo.ppk
# 转换为ras-pem格式
puttygen demo.ppk -O private-openssh -o demo.pem

可以参考issues/3360

Win系统

安装putty,利用puttygen转换

1.导入OPENSSH格式密钥

2.点击菜单->Conversions->Export OpenSSH key导出RSA格式密钥

声明:初心|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - OPENSSH PRIVATE KEY转换为RSA PRIVATE KEY


愿你勿忘初心,并从一而终