我正在使用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);