我已经用 生成了密钥对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,除了在另一台机器上生成密钥之外,我无法看到您如何实际执行此操作。