В настоящее время я использую SSH2 поверх PHP. Это мой первый раз, и я надеюсь, что смогу получить твердую обратную связь по этому вопросу.
По сути, я пытаюсь выполнить аутентификацию на сервере (через SSH), выполнить команду и затем отобразить результаты этой команды.
Вот что я сейчас использую:
if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
// log in at server1.example.com on port 22
if(!($con = ssh2_connect("myserver.com", 22))){
echo "fail: unable to establish connection\n";
} else {
// try to authenticate with username and password
if(!ssh2_auth_password($con, "myusername", "mypassword")) {
echo "fail: unable to authenticate\n";
} else {
// allright, we're in!
echo "okay: logged in...\n";
// execute a command
if(!($stream = ssh2_exec($con, "ls -al" )) ){
echo "fail: unable to execute command\n";
} else{
// collect returning data from command
stream_set_blocking( $stream, true );
$data = "";
while( $buf = fread($stream,4096) ){
$data .= $buf;
echo $data;
}
fclose($stream);
}
}
}
?>
Прямо сейчас, просто для проверки, я пытаюсь вернуть (echo) обратно команду "ls -al"
Я знаю, что эта команда работает, потому что я могу сделать это в терминале в Ubuntu. Наконец, я знаю, что это аутентификация, потому что с текущим кодом, приведенным выше, он возвращает "хорошо: авторизован". Но сейчас это все, что я получаю - все остальное пусто.
Любая помощь в этом была бы великолепна!
Кстати, я пытаюсь использовать метод, как указано здесь: http://kevin.vanzonneveld.net/techblog/article/make_ssh_connections_with_php/