【问题标题】:phpseclib Connection closed prematurelyphpseclib 连接过早关闭
【发布时间】:2017-12-22 15:43:34
【问题描述】:

我正在尝试使用 phpseclib 连接 SFTP 服务器,但出现以下错误

“注意:第 3396 行的 \phpseclib\Net\SSH2.php 中的连接过早关闭”并且永远不会收到成功消息。

登录详细信息在 FileZilla 上运行良好。

下面是我的代码

use phpseclib\Crypt\RSA;
use phpseclib\Net\SSH2;

define('NET_SSH2_LOGGING', SSH2::LOG_COMPLEX);

$key = new RSA();
$key->setPassword('ppk file password');
$key->loadKey(file_get_contents('ppk file path'));

$ssh2 = new SSH2('domain:port');
if (!$ssh2->login('sftp user', $key)) {
    $log = $ssh2->getLog();
    echo $log;
    exit('Login Failed');
}else{
    exit('Success');
}

非常感谢任何帮助我得到错误的原因。

【问题讨论】:

    标签: php ssh phpseclib


    【解决方案1】:

    在这种情况下,SSH 日志可能会更有帮助。

    您可以通过define('NET_SSH2_LOGGING', 2) 获得它们 然后做$ssh->getLog()

    那么你应该看看最后几个数据包

    您能否定义一下您的 php 版本和服务器上的操作系统是什么?

    【讨论】:

      【解决方案2】:

      我不得不回到 phpseclib 2.0.2 找到一个 phpseclib 版本(2.0 分支),它在第 3396 行有一个 user_error 和“连接过早关闭”:

      https://github.com/phpseclib/phpseclib/blob/2.0.2/phpseclib/Net/SSH2.php#L3396

      phpseclib 的最新版本是 2.0.9。我会尝试升级。

      2.0.2 于 2016 年 6 月 4 日发布。2.0.9 于 2017 年 11 月 29 日发布。那时发生了很多变化。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-09
        • 1970-01-01
        • 2014-11-09
        • 1970-01-01
        • 2018-12-09
        • 2019-05-10
        • 2017-07-22
        相关资源
        最近更新 更多