在Windows中自动/脚本/命令行将.pem密钥文件转换为.ppk



我正在使用Vagrant在Windows主机上创建VM,我想与PuTTY连接。Vagrant以.pem格式创建RSA私钥。PuTTY 需要一个 .ppk 格式的密钥来创建连接。

我想在创建流浪虚拟机时自动将 .pem 转换为 .ppk。

如何将.pem转换为.ppk的问题已经被问了很多次,但是在Windows上,所有这些答案都涉及点击puttygen GUI。似乎在Linux上,puttygen可以完全从命令行操作,但在Windows上必须使用GUI。

在创建我想避免的新 VM 时,必须单击浏览 GUI 是我的工作流程中的一个缓慢点。

是否有任何命令行/脚本可/编程方式将 .pem 文件转换为 Windows 上的 .ppk 格式?

WinSCP支持将私钥从OpenSSH(或 ssh.com)格式命令行转换为PuTTY .ppk格式。

使用/keygen开关:

winscp.com /keygen mykey.pem /output=mykey.ppk

(我是WinSCP的作者)

<小时 />

或者,您可以使用Cygwin编译/运行Unix命令行puttygen

<小时 />

或者从 PuTTY 代码构建自己的工具,它是开源的。这相当容易(这基本上就是WinSCP所做的)。

使用 import_ssh2 加载.pem

ssh2_userkey *import_ssh2(const Filename *filename, int type,
                          char *passphrase, const char **errmsg_p);

使用ppk_save_f将其另存为.ppk

bool ppk_save_f(const Filename *filename, ssh2_userkey *key,
                const char *passphrase, const ppk_save_parameters *params);