目前主流的密鑰(或者說私鑰)格式有兩種: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