[转]PuTTY的ppk密钥与OpenSSH密钥之间的相互转换

在手机上使用juiceSSH用密钥连接服务器,以前是用win10 命令行生成的私钥,使用没有问题,这次换了MobaXterm带的工具(后来发现应该是开源的PuTTY项目里的工具)生成的密钥,就登不上了,最后用文本编辑器打开两种密钥,发现格式大不一样,遂查找转换方法,找到一篇说的比较明白,特转载备用:

原文地址:PuTTY的ppk密钥与OpenSSH密钥之间的相互转换 - 简书

几个概念说明:id_rsa、id_rsa.pub、ppk、pem

目前有两个主流的密钥格式:OpenSSH格式的密钥 和 PuTTY格式的密钥。

  1. id_rsa和id_rsa.pub
    都是OpenSSH格式的密钥。
    id_rsa是OpenSSH格式的SSH私钥。
    id_rsa.pub是OpenSSH格式的SSH公钥。
  2. ppk文件
    ppk文件是Putty的私钥。PuTTY Private Key 的缩写。
    但是ppk文件中同时包含了公钥和私钥,可用记事本打开查看。
  3. pem文件
    pem文件可以包含任何东西: 具有公共密钥的证书,SSH公钥,公钥私钥,具有公钥私钥的证书。 PEM是一个文本文件,可以用记事本打开。

OpenSSH格式 和 PuTTY格式使用的都比较多,经常拿到其中一种格式,而使用中却需要另一种格式的。这就需要转换。

linux下的相互转换

ppk转换为OpenSSH格式

安装putty工具(以ubuntu为例)

sudo apt-get install putty-tools

已知PuTTY格式的ppk密钥puttykey.ppk,获取私钥id_rsa

puttygen /path/to/puttykey.ppk -O private-openssh -o ~/.ssh/id_rsa

获取公钥id_rsa.pub

puttygen /path/to/puttykey.ppk -O public-openssh -o ~/.ssh/id_rsa.pub

OpenSSH格式转换为ppk

安装putty工具(以ubuntu为例)

sudo apt-get install putty-tools

已知OpenSSH格式的私钥keyname,转换为keyname.ppk

puttygen keyname -o keyname.ppk

windows下的相互转换

也是借助 puttygen 工具。
安装putty工具,然后打开配套的puttygen.exe

ppk转换为OpenSSH格式

 
 
 
 
 
 

保存OpenSSH格式的私钥


 
 

再保存OpenSSH格式的公钥


 
 

OpenSSH格式转换为ppk

 
 
 
 
 
 
 
 
 
 

TortoiseGit 和 git 对密钥的使用

TortoiseGit默认使用的是putty格式的密钥。
git使用的是OpenSSH格式的密钥。

TortoiseGit可以将tortoisegitplink.exe改成git安装目录的下bin\ssh.exe,然后使用OpenSSH格式的密钥。

linux下git如果只有ppk密钥,想要使用这个密钥,需要完成如下两步:

  1. 把ppk密钥转化为OpenSSH的公钥id_rsa.pub和私钥id_rsa
  2. 把这两个文件移到~/.ssh文件夹下


作者:book_02
链接:https://www.jianshu.com/p/7818b3ad1d72
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2023-08-02 14:50  dirgo  阅读(855)  评论(0编辑  收藏  举报