转换 OpenSSH 私钥为RSA PEM格式

使用ssh-keygen生成的秘钥发现变成了如下格式:

-----BEGIN OPENSSH PRIVATE KEY-----  
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAA...  
-----END OPENSSH PRIVATE KEY-----

这是一种新的密钥格式, 而且很多软件对这种格式的密钥都是不支持的。比如我常用的git图形化操作软件gitkraken遇到这种密钥就会提示

Configured SSH key is an invalid format. 
Please ensure that your key is valid and is an RSA-type key 

这时候, 就不得不把我的私钥转换成RSA – PEM格式。然而, ssh-keygen并不提供这种格式转换的功能。经过多番查找, 我找到了如下行之有效的方法:
我的电脑是mac系统, 所以如下操作是基于mac系统的。

一, 下载安装putty( .tar.gz文件可以 linux和windows上使用, 源码,需要编译后使用)

putty下载地址 : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

二, 使用puttygen软件, 先将私钥换为SSHv2格式, 作为一个中转格式

注: 执行之前, 为了以防错误操作, 先把原来的私钥备份一下
执行 : puttygen 旧的密钥地址x -O private-sshcom -o 新的密钥地址y
注意, 上面的命令中, 第一个参数是大写字母’欧’, 第二个参数是小写字母’欧’
执行完毕后, 会发现SSHv2格式的密钥是如下的样子

---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ---- 
c3Bl23423sfdfadjEAAAAABG5vbmUAAAA...  
---- END SSH2 ENCRYPTED PRIVATE KEY ----

三, 使用ssh-keygen软件, 将中转的SSHv2格式的密钥, 转换为最终的RSA – PEM格式

执行: ssh-keygen -i -f 新的密钥地址y > 最终密钥z
此时, 最终密钥z就是像如下这样, 是我们最终想要的格式了。

-----BEGIN RSA PRIVATE KEY-----
xfKaBuPRCPEQ8Uc3UdyMrIXjvKGos3g...  
-----END RSA PRIVATE KEY-----

本文内容参考了一篇英文博客, 地址如下:
How-to : Convert OpenSSH private keys to RSA PEM

希望可以帮助到你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__万波__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值