在 Windows automatically/script/command 行中将 .pem 密钥文件转换为 .ppk

Convert .pem key file to .ppk in Windows automatically/script/command line

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

我想在创建 vagrant VM 时自动将 .pem 转换为 .ppk。

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

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

在 Windows 上是否有 command-line/scriptable/programmatic 将 .pem 文件转换为 .ppk 格式的方法?

WinSCP supports command-line conversion of private keys from the OpenSSH (or ssh.com) format to the PuTTY .ppk format.

使用/keygen开关:

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

(我是WinSCP的作者)


或者,您可以使用 Cygwin compile/run Unix 命令行 puttygen


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

使用import_ssh2加载.pem:

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

使用ssh2_save_userkey保存为.ppk:

bool ssh2_save_userkey(
    const Filename *filename, ssh2_userkey *key, char *passphrase);

我已经编写了一个实用程序来为您完成这项工作,因为它也让我抓狂。它将监视一个目录并在它们到达时自动转换它们。还将让您快速启动 putty 会话。

here

获取副本