目前主流的密钥(或者说私钥)格式有两种:OpenSSH格式的密钥(.pem或者无后缀) 和 PuTTY格式的密钥(.ppk)
pem好像是Privacy Enhanced Mail的缩写,以前是利用公钥加密进行邮件安全的一个协议,
而现在PEM这个协议仅仅在使用的就是.pem这种文件格式
ppk文件是Putty的私钥。PuTTY Private Key 的缩写。
目前putty基于密钥登录,只能使用ppk格式,而其他ssh客户端,大多都只能使用通过的.pem格式
要实现.pem与.ppk格式的相互转换,目前主要都是使用puttygen这个小程序,具体方法如下:
Window系统下的操作:
格式转换,都需要先导入文件,运行puttygen,点击【Conversions】菜单项中的【Import key】,导入密钥文件
- .pem----转---->.ppk
导入后,点击【Save private key】 ,即可生成putty默认支持.ppk格式了
- .ppk----转---->.pem
导入后,点击【Conversions】菜单项下的 【Export OpenSSH Key】,最后选择保存路径!
Linux系统下的操作:
Linux系统下,转换也需要安装putty软件包(由epel源提供,因此先安装epel-release),安装后包含了puttygen命令行工具
注意:puttygen命令对于输入格式,是可以自动检测到的,也可以-t选择指定(when generating (ed25519, ecdsa, rsa, dsa, rsa1))
- .pem----转---->.ppk
[root@5201351 ~]# puttygen id_rsa.pem -o id_rsa.ppk #也可以-O private指定输出ppk格式,不过putty默认也是输出ppk格式,可以省略
- .ppk----转---->.pem
[root@5201351 ~]# puttygen id_rsa.ppk -o id_rsa.pem -O private-openssh #输出其他非ppk格式,必须-O指定类型,否则报错
如果需要对.pem格式与ppk格式进行批量的转换,目前笔者能想到最好的方法就是使用puttygen命令结合for或while循环遍历处理
关于puttygen命令可能会用到的选项帮助如下:
[root@5201351 ~]# puttygen --help PuTTYgen: key generator and converter for the PuTTY tools Release 0.73 Usage: puttygen ( keyfile | -t type [ -b bits ] ) [ -C comment ] [ -P ] [ -q ] [ -o output-keyfile ] [ -O type | -l | -L | -p ] -t specify key type when generating (ed25519, ecdsa, rsa, dsa, rsa1) -b specify number of bits when generating key -C change or specify key comment -P change key passphrase -q quiet: do not display progress bar -O specify output type: private output PuTTY private key format private-openssh export OpenSSH private key private-openssh-new export OpenSSH private key (force new format) private-sshcom export ssh.com private key public RFC 4716 / ssh.com public key public-openssh OpenSSH public key fingerprint output the key fingerprint -o specify output file -l equivalent to `-O fingerprint' -L equivalent to `-O public-openssh' -p equivalent to `-O public' --old-passphrase file specify file containing old key passphrase --new-passphrase file specify file containing new key passphrase --random-device device specify device to read entropy from (e.g. /dev/urandom)
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/13055631.html