Не ясно, какую версию вы используете. Вы явно не используете последнюю версию 2.0:
https://github.com/phpseclib/phpseclib/blob/2.0.11/phpseclib/Net/SSH2.php#L800
Также вы не используете последнюю версию 1.0:
https://github.com/phpseclib/phpseclib/blob/1.0.11/phpseclib/Net/SSH2.php#L800
Нет смысла ожидать, что люди, которые могут помочь вам, должны будут грубо насиловать каждую версию, чтобы выяснить ту, которая имеет user_error(rtrim("Cannot connect to $host. Banner timeout"), E_USER_NOTICE);
в строке 800.
Тем не менее, я отмечаю, что ни одна текущая версия не говорит Banner timeout
. Самая близкая строка к тому, что я мог найти, была такой:
user_error(rtrim("Cannot connect to $host. Error $errno. $errstr"));
($errno
и $errstr
происходят из fsockopen, в данном случае)
Я немного покопался. Похоже, что «Время ожидания баннера» не было в сообщении об ошибке по крайней мере 3,5 года:
https://github.com/phpseclib/phpseclib/commit/23c65c383945cfc9c2293f45a7cbc6f1a68178ec#diff-82a5983a6daace4acbcc65edf2dfb605
Так что, по крайней мере, сколько лет вашей установке phpseclib. Возможно, даже старше этого. Поэтому я бы порекомендовал обновить.