php - ssh2_connect(): 启动 SSH 连接时出错 (-43): 获取横幅失败
问题描述
使用 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 文档中找到如何设置异常处理程序。
推荐阅读
- javascript - MiniCssExtractPlugin 没有创建 css 文件
- http - 控制台上的响应与网络上的预览不同
- google-cloud-platform - 在 BigQuery 中使用 MAX 值展平结果
- html - 是否可以仅使用 CSS 来阻止单词换行?
- c - toascii 是做什么的?
- c++ - 如何向 WooCommerce API 发送请求
- objective-c - 未找到 OneSignal/OneSignal.h' 文件 Xcode 10
- awk - 如何使用文件名或路径中的通配符检查文件是否存在并且在awk中不为空
- node.js - 将 adonis 邮件数据发送到边缘视图
- c++ - 如何设置允许用户输入数据的对话框?