PHP / Bash:使用密码短语从OpenSSH Key创建PPK

时间:2013-04-21 14:30:53

标签: php openssl putty private-key

我想创建一个为ssh身份验证创建密钥的php脚本。 我已经开始了

exec("ssh-keygen -b 1024 -t dsa -N *pwd* -f *path-to-file* -q");

创建私钥和公钥对。没问题,直到这里;)

现在我要将OpenSSL-Key转换为PuTTY的ppk格式(在cmd中,而不是在GUI中)。如果有人对如何管理它有任何想法,请告诉我。

由于

2 个答案:

答案 0 :(得分:2)

如果您使用的是RSA密钥,则可以执行此操作(需要phpseclib):

<?php
include('Crypt/RSA.php');

$rsa = new Crypt_RSA();
$rsa->setPassword('password');
$rsa->loadKey('...');

//$rsa->setPassword(); // clear the password if there was one
echo $rsa->getPrivateKey(CRYPT_RSA_PRIVATE_FORMAT_PUTTY);
?>

答案 1 :(得分:1)

您尚未指定运行的操作系统。在* nix上,您可以使用PuTTYgen(来自PuTTY):

puttygen openssl-key -o mykey.ppk

有关详细信息,请参阅:https://linux.die.net/man/1/puttygen

在Windows上,PuTTYgen只是一个GUI应用程序。但是,您可以使用WinSCP,它有PuTTYgen-compatible command-line interface

winscp.com /keygen openssl-key -o mykey.ppk