如何在 Windows 命令行上将 SSH 私钥转换为 .ppk?

如何在 Windows 命令行上将 SSH 私钥转换为 .ppk?

我已经用 生成了密钥对ssh-keygen。现在我想将相同的密钥对用于基于 PuTTY 的应用程序。

因为我在 CLI 环境中工作,所以我想将密钥转换.ppk为该环境内的格式。

显然,您可以puttygen openssh_private_key -o output_filename.ppk在类 UNIX 环境中使用。但 Windows 版本puttygen只会加载密钥并提示您使用 GUI 导出密钥。

Windows PuTTYgen 的批处理模式这表明目前这根本不可能,至少对于 来说是不可能的puttygen。不过我很乐意接受使用其他方式的选项。

如何从命令行转换密钥?

答案1

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

使用/keygen开关:

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

(我是 WinSCP 的作者)


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

或者使用 WSL 安装它们:

sudo apt install putty-tools # for ubuntu

那么,在这两种情况下:

puttygen mykey.pem -O private -o mykey.ppk

或者用 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)

答案2

注意:OP 需要命令行。此答案使用图形应用程序... 将答案留在这里以防万一有用。

可能有一个更简单的解决方案。

1)下载(如果你还没有)PuTTY 密钥生成器(PuTTYgen)应用程序,请访问这里或者这里

2)打开PuTTYgen

3)点击转化,然后点击导入密钥

4)找到您的密钥文件,然后单击打开。

现在,您可以通过单击“保存私钥”按钮将密钥保存为 PPK 文件

您还可以通过点击“保存公钥”按钮来保存密钥的公共版本

https://devops.profitbricks.com/tutorials/use-ssh-keys-with-putty-on-windows/

https://kb.site5.com/shell-access-ssh/how-to-convert-ssh-keys-to-ppk-format/

答案3

如果你在 Linux 上运行或在那里生成密钥(或者你可以?)那么你可以使用

puttygen -t rsa -C "my home key" -o mykey.ppk

如果您还没有 puttygen,那么sudo apt install putty-tools请在您的系统上使用适当的命令来安装它。

否则,如果您使用的是 Windows,除了在另一台机器上生成密钥之外,我无法看到您如何实际执行此操作。

相关内容