Putty转换ppk密钥与OpenSSH密钥之间的相互转换

发布时间:2023-11-10T22:43:21 资源分享

几个概念说明:

id_rsa、id_rsa.pub、ppk、pem

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

id_rsa 和 id_rsa.pub 都是 OpenSSH 格式的密钥,id_rsa 是 OpenSSH 格式的 SSH 私钥,id_rsa.pub 是 OpenSSH 格式的 SSH 公钥。

ppk 文件是 Putty 的私钥。PuTTY Private Key 的缩写。但是ppk文件中同时包含了公钥和私钥,可用记事本打开查看。

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 格式

Putty转换ppk密钥与OpenSSH密钥之间的相互转换第1张

Putty转换ppk密钥与OpenSSH密钥之间的相互转换第2张

Putty转换ppk密钥与OpenSSH密钥之间的相互转换第3张

 

保存 OpenSSH 格式的私钥

Putty转换ppk密钥与OpenSSH密钥之间的相互转换第4张

再保存 OpenSSH 格式的公钥

Putty转换ppk密钥与OpenSSH密钥之间的相互转换第5张

OpenSSH 格式转换为 ppk

Putty转换ppk密钥与OpenSSH密钥之间的相互转换第6张

Putty转换ppk密钥与OpenSSH密钥之间的相互转换第7张

Putty转换ppk密钥与OpenSSH密钥之间的相互转换第8张

Putty转换ppk密钥与OpenSSH密钥之间的相互转换第9张

Putty转换ppk密钥与OpenSSH密钥之间的相互转换第10张

 

TortoiseGit 和 git 对密钥的使用

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

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

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

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