检查与PHP中的ssh2函数的连接

yhived7q  于 2023-01-08  发布在  PHP
关注(0)|答案(4)|浏览(153)

我需要检查与函数http://php.net/manual/en/function.ssh2-connect.php的连接
但如果我开这样的支票

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

我从来没有进入“回声'没有连接'行;“
你能解释一下为什么吗?还有怎么开这样的支票?
先谢了!

vq8itlhq

vq8itlhq1#

基本上,您应该使用ssh2_auth_passwordssh2_auth_public_key_file之类的函数,并结合ssh2_connect function来检查连接是否经过身份验证

$connection = ssh2_connect("myserver.com", 22);

    if (ssh2_auth_password($connection, "username", "password")) {
      echo "connection is authenticated";
    }
    else {
      echo "failed!";
    }

希望这有帮助!
编辑:缺少分号

tquggr8v

tquggr8v2#

这取决于您的服务器。尝试连接到某个不存在的服务器,看看会发生什么。
如果您只需要检查连接,那么您也可以使用类似http://php.net/manual/en/function.fsockopen.php的命令

smdncfj3

smdncfj33#

看起来第4个参数$callbacks可以产生一些关于此问题的反馈。
这个问题很可能是由于无法连接(Duh)。这可能是因为防火墙,没有互联网,SSH上的高度安全。尝试调用PHP box上的# ssh -v <host>来查看问题可能是什么。

sqserrrh

sqserrrh4#

还有一个例子可以说明为什么phpseclib, a pure PHP SSH implementation优于PECL的ssh2扩展。

相关问题