ssh2_connect():启动SSH连接时出错(-43):获取横幅失败



使用php-ssh2构建一个docker容器。php 7.2版尝试使用时

$con = ssh2_connect('hostname');

我得到了Error starting up SSH connection(-43): Failed getting banner。有趣的是这里的4343的意义是什么。这是什么意思?你知道怎么解决这个问题吗?没有重载,手动运行连接。

深入libssh2

这个数字-43是直接来自libssh2,特别是LIBSSH2_ERROR_SOCKET_RECV的错误代码。Failed getting banner消息是伴随错误代码的动态错误消息。这两条信息给出了抛出此错误的位置,即在receive_banner中。

根本问题

这是由于libssh2在初始化SSH会话时尝试从套接字中读取时,套接字抛出了一个接收错误。服务器配置错误,没有发送横幅,或者由于某种原因导致基础连接断开。

解决方案

最好的做法似乎是对这类错误进行适当的重试。您正在连接到一个可能会失败的网络。随着连接的服务器数量的增加,您将遇到由底层网络导致的错误。适当的错误处理是您的最佳做法。

您可以从PHP文档中找到如何设置异常处理程序。

相关内容

  • 没有找到相关文章

最新更新