проверить соединение с функциями ssh2 в PHP - PullRequest
0 голосов
/ 04 марта 2011

Мне нужно проверить соединение с функцией http://php.net/manual/en/function.ssh2-connect.php

Но если бы я сделал такую ​​проверку

$connection = ssh2_connect('myserver.com', 22);         
if (!$connection){
    echo 'no connection';
}else{
    echo 'connection ok';
}

Я никогда не получаю в строке "echo 'no connection';"

Можете ли вы объяснить мне, почему? А как сделать такую ​​проверку?

Заранее спасибо!

Ответы [ 4 ]

1 голос
/ 09 мая 2011

По сути, вы должны использовать такие функции, как ssh2_auth_password или ssh2_auth_public_key_file и объединиться с функцией ssh2_connect, чтобы проверить, аутентифицировано ли соединение или нет

$connection = ssh2_connect("myserver.com", 22);
if(ssh2_auth_password($connection, "username", "password")){
echo "connection is authenticated";
}
else{
echo "failed!"
}

Надеюсь, это поможет!

1 голос
/ 04 марта 2011

Это зависит от вашего сервера.Попробуйте подключиться к какому-либо несуществующему и посмотреть, что произойдет.

Если вам нужно проверить только соединение, то вы можете использовать что-то вроде http://php.net/manual/en/function.fsockopen.php также

0 голосов
/ 10 марта 2011

Еще один пример того, почему phpseclib, чистая PHP-реализация SSH , лучше, чем расширение sEC2 в PECL.

0 голосов
/ 04 марта 2011

Похоже, что 4-й параметр $callbacks может дать некоторую обратную связь по этой проблеме.

Вероятно, проблема связана с невозможностью подключения (Дух).Это может быть из-за брандмауэра, без интернета, из-за повышенной безопасности SSH.Попробуйте позвонить # ssh -v <host> на PHP, чтобы увидеть, в чем может быть проблема.

...