繁体   English   中英

使用PHP中的ssh2函数检查连接

[英]check connection with ssh2 functions in PHP

我需要使用功能http://php.net/manual/zh/function.ssh2-connect.php检查连接

但是如果我做了这样的检查

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

我从来没有进入过“ echo'no connection';”行。

你能解释一下为什么吗? 以及如何进行这样的检查?

提前致谢!

这取决于您的服务器。 尝试连接到一些不存在的服务器,然后看看会发生什么。

如果您只需要检查连接,则可以使用类似http://php.net/manual/en/function.fsockopen.php的名称

基本上,应该使用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!"
}

希望这可以帮助!

看起来第四个参数$callbacks可能会对此问题产生一些反馈。

该问题可能是由于无法连接(Duh)。 这可能是因为防火墙,没有互联网,SSH的安全性很高。 尝试在PHP框上调用# ssh -v <host>来查看可能是什么问题。

为什么另一个例子phpseclib,纯PHP SSH实现 ,比PECL的SSH2扩展更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM