首页 > 解决方案 > 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。这意味着什么?还有任何想法如何解决这个问题?没有繁重的负载,手动运行连接。

标签: phplibssh2ssh2-sftpssh2

解决方案


深入了解libssh2

这个数字-43是直接来自的错误代码libssh2,具体来说LIBSSH2_ERROR_SOCKET_RECV。该Failed getting banner消息是伴随错误代码的动态错误消息。这两条信息给出了引发此错误的位置,即在receive_banner.

根本问题

这是套接字在libssh2初始化 SSH 会话时尝试读取它时抛出接收错误的结果。服务器配置错误并且没有发送横幅或底层连接由于某种原因断开。

解决方案

最好的行动方案似乎对这些类型的错误进行了充分的重试。您正在连接到一个可能会失败的操作的网络。随着您要连接的服务器数量的增加,您将遇到由底层网络引起的错误。适当的错误处理是您最好的行动方案。

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


推荐阅读