phpseclib SSH2 write не выполняет длинную команду

Я пытаюсь выполнить команду 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 ответа

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

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

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

Другие вопросы по тегам