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

标签 ssh putty private-key pem key-pair

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

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

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

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

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

最佳答案

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 的作者)

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

或者从 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);

关于ssh - 在 Windows 中自动将 .pem key 文件转换为 .ppk/脚本/命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29646720/

相关文章:

openssl - 如何从 CRT 文件生成 key ?

android - 将公钥/私钥写入 SharedPreferences 并使用它

linux - 当我在远程服务器上运行脚本时,它会在本地计算机上启动

phpseclib 与 libssh2

python - Fabric 库的动态主机和并行任务

git - 在具有共享用户的公共(public)服务器上使用 git 私钥的最佳实践

linux - 如何获取具有相同结构的多个文件夹的内容

MYSQL错误,无法启动服务且找不到mysql.sock

php - PHP 应用程序中的 MySQL 语法错误,但可以在 MySQL 终端中使用

c# - 如何将 OpenSSL ECDSA key 加载到 C# 中?