PHP / Bash: Създаване на PPK от OpenSSH ключ с парола

Бих искал да създам php скрипт, който създава ключове за ssh-удостоверяване. Започнах с a

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

за създаване на двойка частен и публичен ключ. Няма проблем до тук ;)

Сега трябва да преобразувам OpenSSL-ключа в ppk-формата на PuTTY (в cmd, не в GUI). Ако някой има идея как да го управлявам, моля да ме уведоми.

Благодаря


person craCH    schedule 21.04.2013    source източник


Отговори (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);
?>
person neubert    schedule 25.04.2013

Не сте посочили на каква операционна система работите. На *nix можете да използвате PuTTYgen (от PuTTY):

puttygen openssl-key -o mykey.ppk

За подробности вижте: https://linux.die.net/man/1/puttygen

В Windows PuTTYgen е само GUI приложение. Въпреки това можете да използвате WinSCP, той има съвместим с PuTTYgen интерфейс на командния ред:

winscp.com /keygen openssl-key -o mykey.ppk
person Martin Prikryl    schedule 21.04.2013
comment
Пускам го на Debian сървър. - person craCH; 22.04.2013
comment
Това е добро решение, но проблемът е ГРЕШКАТА в този инструмент (вижте manpage) ГРЕШКИ: Понастоящем няма начин да предоставите пароли в пакетен режим или дори просто да посочите, че изобщо не искате парола. - person craCH; 22.04.2013