2013-04-21 3 views
0

ssh 인증을위한 키를 생성하는 PHP 스크립트를 만들고 싶습니다. 나는 개인 및 공개 키 쌍을 생성하기 위해PHP/Bash : 암호 문구가 포함 된 OpenSSH 키로 PPK 만들기

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

시작했습니다. 여기까지는 아무런 문제가 없습니다.)

이제 OpenSSL-Key를 PuTTY의 ppk 형식 (GUI가 아닌 cmd)으로 변환해야합니다. 누군가가 그것을 관리하는 방법에 대한 아이디어가 있다면 알려 주시기 바랍니다.

감사합니다.

답변

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

실행중인 OS를 지정하지 않았습니다. * 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

내가 데비안 서버에서 실행합니다. – craCH

+0

좋은 해결책이지만 문제는이 도구의 버그입니다. 맨 페이지 참조 버그 : 현재는 배치 모드에서 암호를 제공 할 방법이 없으며 암호를 전혀 사용하지 않기로 지정하는 방법도 있습니다. – craCH