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

Posted

技术标签:

【中文标题】在 Windows 中自动/脚本/命令行将 .pem 密钥文件转换为 .ppk【英文标题】:Convert .pem key file to .ppk in Windows automatically/script/command line 【发布时间】:2015-06-21 04:58:00 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

WinSCP 支持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 编译/运行 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);

【讨论】:

【参考方案2】:

我已经编写了一个实用程序来为你做这件事,因为它也让我发疯了。它将监视一个目录并在它们到达时自动转换它们。还可以让您快速启动 putty 会话。

从here获取一份副本

【讨论】:

不再存在

以上是关于在 Windows 中自动/脚本/命令行将 .pem 密钥文件转换为 .ppk的主要内容,如果未能解决你的问题,请参考以下文章

使用Windows命令行将多行环境变量回显到文本文件

如何在命令行将文件从远程服务器移动到 s3

如何使用命令行将“其他链接器标志”添加到 xcode 项目?

我可以从脚本或命令行将文件复制到网上邻居吗? [关闭]

通过 Windows 命令行将 TIFF 转换为 PDF [关闭]

如何自动运行大量 perl 脚本?