phpseclib 连接过早关闭
phpseclib Connection closed prematurely
我正在尝试使用 phpseclib 连接 SFTP 服务器,但出现以下错误
"Notice: Connection closed prematurely in \phpseclib\Net\SSH2.php on line 3396" 并且永远不会收到成功消息。
登录详细信息在 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');
}
非常感谢任何帮助我解决错误的方法。
在这种情况下,SSH 日志可能会更有帮助。
你可以通过define('NET_SSH2_LOGGING', 2)
获得它们
然后做 $ssh->getLog()
。
那你应该看看最后几个包
您还可以定义您的 php 版本是什么以及服务器上的 OS 是什么吗?
我不得不回到 phpseclib 2.0.2 找到一个版本的 phpseclib(2.0 分支),它在第 3396 行有一个 user_error
和 "Connection closed prematurely":
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 日发布。那段时间发生了很多变化。
我正在尝试使用 phpseclib 连接 SFTP 服务器,但出现以下错误
"Notice: Connection closed prematurely in \phpseclib\Net\SSH2.php on line 3396" 并且永远不会收到成功消息。
登录详细信息在 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');
}
非常感谢任何帮助我解决错误的方法。
在这种情况下,SSH 日志可能会更有帮助。
你可以通过define('NET_SSH2_LOGGING', 2)
获得它们
然后做 $ssh->getLog()
。
那你应该看看最后几个包
您还可以定义您的 php 版本是什么以及服务器上的 OS 是什么吗?
我不得不回到 phpseclib 2.0.2 找到一个版本的 phpseclib(2.0 分支),它在第 3396 行有一个 user_error
和 "Connection closed prematurely":
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 日发布。那段时间发生了很多变化。