PHP shell_exec не работает с ssh

Shell_exec корректно работает в PHP, но при использовании ssh ничего не возвращает.

<?php
    echo shell_exec("/usr/bin/ssh -i /tmp/key server 'ls'");
?>

Приведенная выше команда отлично работает в оболочке bash, а следующая отображает правильный вывод в PHP.

<?php
    echo shell_exec("ls");
?>

Я надеялся, что это можно сделать без использования сторонней php-библиотеки...


person ztnewman    schedule 18.04.2013    source источник


Ответы (1)


Используя phpseclib, реализацию SSH2 на чистом PHP:

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
$key = new Crypt_RSA();
$key->loadKey(file_get_contents('/tmp/key'));
if (!$ssh->login('username', $key)) {
    exit('Login Failed');
}


echo $ssh->exec('ls');
?>
person neubert    schedule 18.04.2013