我需要检查与函数http://php.net/manual/en/function.ssh2-connect.php的连接
但如果我开这样的支票
$connection = ssh2_connect('myserver.com', 22);
if (!$connection){
echo 'no connection';
}else{
echo 'connection ok';
}
我从来没有进入“回声'没有连接'行;“
你能解释一下为什么吗?还有怎么开这样的支票?
先谢了!
4条答案
按热度按时间vq8itlhq1#
基本上,您应该使用
ssh2_auth_password
或ssh2_auth_public_key_file
之类的函数,并结合ssh2_connect function
来检查连接是否经过身份验证希望这有帮助!
编辑:缺少分号
tquggr8v2#
这取决于您的服务器。尝试连接到某个不存在的服务器,看看会发生什么。
如果您只需要检查连接,那么您也可以使用类似http://php.net/manual/en/function.fsockopen.php的命令
smdncfj33#
看起来第4个参数
$callbacks
可以产生一些关于此问题的反馈。这个问题很可能是由于无法连接(Duh)。这可能是因为防火墙,没有互联网,SSH上的高度安全。尝试调用PHP box上的
# ssh -v <host>
来查看问题可能是什么。sqserrrh4#
还有一个例子可以说明为什么phpseclib, a pure PHP SSH implementation优于PECL的ssh2扩展。