ssh2_connect()не переподключается при обрыве связи с сервером

Код работает, пока не перезагружу сервер, далее соединения заново не происходит, пишет "ssh2_connect(): Unable to connect to 192.168.0.252", хотя сервер уже доступен.

while(true)
    {
        if(isset($ssh) === false)
            {
                while(true)
                    {
                        $ssh = NULL;
                        $ssh = @ssh2_connect('192.168.0.252', 22);

                        if(is_resource($ssh) === true)
                            {
                                if(@ssh2_auth_password($ssh, 'root', 'RoaUa3iB3d') === true)
                                    {
                                        break; //подключился
                                    } else
                                        {print_r(error_get_last());
                                            echo __FILE__.' | '.__LINE__.' | '.date('Y-m-d H:i:s').' | не подходит логин или пароль'.PHP_EOL;
                                        }
                            } else
                                {print_r(error_get_last());
                                    echo __FILE__.' | '.__LINE__.' | '.date('Y-m-d H:i:s').' | не могу подключиться к серверу'.PHP_EOL;
                                }

                        unset($ssh);

                        sleep(10);
                    }
            }


        $status = false;

        $stream = @ssh2_exec($ssh, 'echo $SSH_CLIENT | awk \'{ print $1}\'');

        if(is_resource($stream) === true)
            {//echo 1;
                if(@stream_set_blocking($stream, true) === true)
                    {//echo 2;
                        $stream_out = @ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);

                        if(is_resource($stream_out) === true)
                            {//echo 3;
                                $newIp = @stream_get_contents($stream_out);
                                //var_dump($newIp);
                                //var_dump(filter_var($newIp, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4));

                                if(is_string($newIp) === true)
                                    {//echo 4;
                                        $newIp = trim($newIp);

                                        //var_dump($newIp);
                                        //var_dump(filter_var($newIp, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4));

                                        if($newIp === filter_var($newIp, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4))
                                            {//echo 5;
                                                $status = true;

                                                echo __FILE__.' | '.__LINE__.' | '.date('Y-m-d H:i:s').' | '.$newIp.PHP_EOL;
                                            }
                                        
                                    }
                            }
                    }
            }

        if($status === false) //что-то не то с ответом сервера (нет инета, отвалился сервер, вернул не то, что ожидаю и т.д.)
            {
                ssh2_disconnect($ssh);

                unset($ssh);

                sleep(10);
            } else
                {
                    sleep(1);
                }
    }

Ответы (0 шт):