Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

使用 PuTTYgen 生成的 ssh密钥(.ppk),和直接在 git bash 里生成的ssh密钥(OpenSSH 格式),是两种不同的格式,有时需要相互转换。本文侧重于记录,在 windows 系统里,导入 PuTTYgen 保存的私钥,生成 OpenSSH 格式的公钥和私钥对。

OpenSSH格式和PuTTY格式的密钥

  • OpenSSH 格式:公钥默认名字为 id_rsa.pub,私钥默认名字为 id_rsa,可以由 git bash 生成
  • PuTTY 格式:.ppk 文件是 Putty 的私钥,文件中同时包括了公钥和私钥,可以由PuTTYgen 生成并保存

所以,可以直接将 .ppk 文件,转换为 OpenSSH 格式的一个私钥和一个公钥

PuTTY 格式转换为 OpenSSH 格式(Win)

转换通过PuTTYgen完成,也可以用来实现 OpenSSH 格式转换为 PuTTY 格式

导入 .ppk 文件

打开 PuTTY 自带的密钥生成工具 PuTTYgen,在最上面的菜单栏选择 Conversions -> Import Key,载入已有的 .ppk 文件(也就是之前通过 PuTTYgen 保存的私钥)

保存 OpenSSH 格式私钥

在最上面的菜单栏选择 Conversions -> Export OpenSSH key,保存 OpenSSH 格式的私钥

保存 OpenSSH 格式公钥

在下方的图形界面中,点击 Save public key,取名加上 .pub 后缀,保存公钥

其它部分

linux 系统下的相互转化

需要安装 putty-tools

sudo apt-get install putty-tools

相互转换

## (1)puttykey.ppk 转换为 OpenSSH 格式的私钥和公钥
# 获取私钥 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

## (2)OpenSSH 格式的私钥 id_rsa 转换为 puttykey.ppk
puttygen id_rsa -o puttykey.ppk

参考内容

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

评论