phpseclib连接过早关闭

问题描述 投票:2回答:2

我正在尝试使用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
2个回答
0
投票

我不得不回到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日发布。当时发生了很多变化。


1
投票

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

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

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

你能定义什么是你的php版本以及服务器上的操作系统是什么?

© www.soinside.com 2019 - 2024. All rights reserved.