检查 PHP 中 ssh2 函数的连接
我需要检查与函数 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'; ”行,
你能解释一下为什么吗? 那么如何进行这样的支票呢?
提前致谢!
I need to check the connection with the function http://php.net/manual/en/function.ssh2-connect.php
But if I made a check like this
$connection = ssh2_connect('myserver.com', 22);
if (!$connection){
echo 'no connection';
}else{
echo 'connection ok';
}
I never get into the line " echo 'no connection'; "
Can you explain me why?
And how to make a check like that?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
基本上,您应该使用
ssh2_auth_password
或ssh2_auth_public_key_file
等函数,并与ssh2_connect 函数
结合使用来检查连接是否经过身份验证希望这会有所帮助!
编辑:缺少分号
Basically, you should use the functions like
ssh2_auth_password
, orssh2_auth_public_key_file
and combine withssh2_connect function
to check whether the connection is authenticated or notHope this helps!
edit: missing semicolon
这取决于您的服务器。尝试连接到某个不存在的连接,看看会发生什么。
如果您只需要检查连接,那么您可以使用类似 http://php.net /manual/en/function.fsockopen.php 也
It depends on your server. Try to connect to some non-existing one and see what happens.
If you need to check only connection, then you can use something like http://php.net/manual/en/function.fsockopen.php also
看起来第四个参数
$callbacks
可以针对这个问题产生一些反馈。该问题可能是由于无法连接造成的(Duh)。这可能是因为防火墙、没有互联网、SSH 的安全性很高。尝试在 PHP 盒子上调用
# ssh -v
来查看问题所在。It looks like the 4th parameter
$callbacks
could yield some feedback on this problem.The issue is likely due to inability to connect (Duh). This could be because a firewall, no internet, heavy security on SSH. Try calling
# ssh -v <host>
on PHP box to see what the problem could be.还有一个例子说明了为什么 phpseclib(一个纯 PHP SSH 实现)比 PECL 的 ssh2 扩展更好。
Yet another example of why phpseclib, a pure PHP SSH implementation, is better than PECL's ssh2 extension.