检查 PHP 中 ssh2 函数的连接

发布于 2024-10-20 20:56:05 字数 427 浏览 3 评论 0原文

我需要检查与函数 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

往昔成烟 2024-10-27 20:56:05

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

希望这会有所帮助!

编辑:缺少分号

Basically, you should use the functions like ssh2_auth_password, or ssh2_auth_public_key_file and combine with ssh2_connect function to check whether the connection is authenticated or not

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

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

Hope this helps!

edit: missing semicolon

我是男神闪亮亮 2024-10-27 20:56:05

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

如果您只需要检查连接,那么您可以使用类似 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

对风讲故事 2024-10-27 20:56:05

看起来第四个参数 $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.

我不会写诗 2024-10-27 20:56:05

Yet another example of why phpseclib, a pure PHP SSH implementation, is better than PECL's ssh2 extension.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文