【问题标题】:PHP / Bash: Creating PPK out of OpenSSH Key with passphrasePHP / Bash:使用密码从 OpenSSH 密钥创建 PPK
【发布时间】:2013-04-14 11:23:48
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: php openssl putty private-key


    【解决方案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
    

    【讨论】:

    • 我在 Debian 服务器上运行它。
    • 这是一个很好的解决方案,但问题是此工具中的 BUG(请参阅手册页)一个密码。
    【解决方案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);
    ?>
    

    【讨论】:

      猜你喜欢
      • 2020-10-07
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      • 2013-02-18
      • 2021-07-20
      • 1970-01-01
      • 2016-07-15
      • 2015-05-02
      相关资源
      最近更新 更多