使用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
希望可以帮助到你。