使用 php-ssh2 构建 docker 容器。php 7.2 版尝试使用时
$con = ssh2_connect('hostname');
我越来越Error starting up SSH connection(-43): Failed getting banner
。有趣的事情就43
在这里。有什么意义43
。这意味着什么?还有任何想法如何解决这个问题?没有繁重的负载,手动运行连接。
libssh2
这个数字-43
是直接来自的错误代码libssh2
,具体来说LIBSSH2_ERROR_SOCKET_RECV
。该Failed getting banner
消息是伴随错误代码的动态错误消息。这两条信息给出了引发此错误的位置,即在receive_banner
.
这是套接字在libssh2
初始化 SSH 会话时尝试读取它时抛出接收错误的结果。服务器配置错误并且没有发送横幅或底层连接由于某种原因断开。
最好的行动方案似乎对这些类型的错误进行了充分的重试。您正在连接到一个可能会失败的操作的网络。随着您要连接的服务器数量的增加,您将遇到由底层网络引起的错误。适当的错误处理是您最好的行动方案。
您可以从PHP 文档中找到如何设置异常处理程序。