phpseclib SSH2 write не выполняет длинную команду - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь выполнить команду SSH для устройства (брандмауэр). Команда выполняется, когда длина короткая. Когда длина составляет около 1000 символов, команда не выполняется.

Когда я выполняю команду через putty, это также работает.

Прочитав несколько решений, я попытался установить тайм-аут на 5 секунд. Тем не менее, никакой помощи.

В журналах устройства я вижу SSH-вход и выход из системы. Но никакой активности.

Я использую phpseclib ssh версии 2.0

$ssh = new SSH2(ip_address);
$ssh->login($user, $password);
$ssh->write($command);
$ssh->setTimeout(5);
$ssh->read()

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Проблема оказалась в пути между сервером и устройством.

0 голосов
/ 11 марта 2019

Судя по исходному коду библиотеки https://github.com/phpseclib/phpseclib/blob/master/phpseclib/Net/SSH2.php#L4244 мы видим, что время ожидания встроено в библиотеку, поэтому вам не нужно устанавливать время ожидания.

Если это не сработает, вы можете открыть вопрос на github, указав свою команду. Если библиотека поддерживается, вы получите исправление или ответ от разработчиков библиотеки.

...