2013-04-21 79 views
0

我想創建一個用於爲ssh驗證創建密鑰的php腳本。 我已經開始與一個PHP/Bash:使用密碼創建PPK,使用OpenSSH密鑰

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

創建私有和公共密鑰對。沒有問題,直到這裏;)

現在我已經將OpenSSL-Key轉換爲PuTTY的ppk格式(在cmd中,而不是在GUI中)。如果任何人有關於如何管理的想法,請告訴我。

謝謝

回答

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

您還沒有指定,你在哪個操作系統上運行。在* nix中,你可以使用的puttygen(從膩子):

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 
+0

我一個Debian的服務器上運行。 – craCH 2013-04-21 20:40:38

+0

這是一個很好的解決方案,但問題在於此工具中的BUG(請參閱聯機幫助頁) BUGS:目前沒有辦法在批處理模式下提供密碼短語,或者甚至只是指定您根本不需要密碼短語。 – craCH 2013-04-21 20:41:52