[英]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.