Соединение PHP SSH с использованием phpseclib Net_SSH2

Я пытаюсь заставить удаленный ssh ​​работать на моем веб-сайте (размещенном на godaddy).

Я загрузил и поместил phpseclib на сервер, и он его видит, я использую следующий код, как рекомендовано в документации

<?php

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
include('Net/SSH2.php');
define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX);

echo "<span>in progress: <br /></span>";

$ssh = new Net_SSH2('197.87.71.51', 2211);

if (!$ssh->login('postgres', 'postgres')) {
    exit('Login Failed');
} else {
    echo "<span>login success<br /></span>";
}

echo $ssh->exec('pwd');
echo $ssh->getLog();
echo $ssh->getLastError();

?>

Я получаю сообщение об ошибке входа в систему, и я не знаю, с чего начать отладку этого.

Я не получаю никаких сообщений об ошибках, похоже, что ничего не происходит


person TheLovelySausage    schedule 30.10.2015    source источник
comment
Вам нужно сделать $ssh->getLog() перед выходом. Сделайте это и отредактируйте свой вопрос, чтобы включить вывод.   -  person neubert    schedule 01.11.2015


Ответы (1)


Попробуйте посмотреть ошибки

 print_r($ssh->getSFTPErrors());

или просто

$ssh->getErrors()

Глава 5.1.8. Отладка SSH-2 в документации

include('Net/SSH2.php');
define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX);

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->exec('pwd');
echo $ssh->getLog();
person Dimitar Stoyanov    schedule 30.10.2015
comment
Я пытался использовать print_r($ssh-›getErrors()); и он выводит «Массив ()» - person TheLovelySausage; 30.10.2015
comment
В зависимости от проблемы может быть эффективнее просто просмотреть вывод $ssh->getLastError() (который возвращает строку) и $ssh->getErrors() (который возвращает массив), чем просеивать журналы. . - person Dimitar Stoyanov; 30.10.2015
comment
Для регистрации вывода необходимо определить константу NET_SSH2_LOGGING. определить('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX); после включения. - person Dimitar Stoyanov; 30.10.2015
comment
Я обновил код в вопросе, чтобы он соответствовал вашим предложениям, он повторяет «Ошибка входа», но нет причин, почему - person TheLovelySausage; 30.10.2015
comment
@ Трент - вам нужно сделать $ssh->getLog() до exit. Сделайте это и отредактируйте исходный вопрос, чтобы включить вывод. - person neubert; 01.11.2015