0

一些 SFTP 凭证适用于以下开源,但一些凭证会抛出错误。以下错误的根本原因是什么,我看到他们发布了一些锻炼的一些线程,但这些解决方案对我不起作用。

为什么我得到以下错误,解决方案是什么。

开源:phpseclib 错误:波纹管错误

Warning: unpack() [function.unpack]: Type C: not enough input, need 1, have 0 in \Net\SSH2.php on line 1469

Warning: extract() expects parameter 1 to be array, boolean given in \Net\SSH2.php on line 1469

https://github.com/phpseclib/phpseclib/blob/master/phpseclib/Net/SSH2.php#L1538

4

2 回答 2

0

你的 1469 行是什么?您链接到的版本在第 1469 行有这个:

while ($this->decrypt_block_size > strlen($iv)) {

您的链接是第 1538 行,即:

            break;

如果您也可以在前后发布三行,那就太好了。

谢谢!

于 2013-05-14T22:41:31.997 回答
0

我知道这是一个较旧的问题,并且已被降级,但实际上我遇到了同样的错误。它间歇性地发生,因此很难排除故障。我的错误是引用\Net\SSH2.php的第 2127 行。这是那条线,加上一些周围的线:

    2121 $response = $this->_get_binary_packet();
    2122 if ($response === false) {
    2123    user_error('Connection closed by server');
    2124    return false;
    2125 }

    2127 extract(unpack('Ctype', $this->_string_shift($response, 1)));

    2129 switch ($type) {
    2130    case NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ: // in theory, the password can be changed
    2131        if (defined('NET_SSH2_LOGGING')) {

这是我在登录后用于将文件从外部服务器复制到我自己的语法:

$sftp->get('/remote/file/path/file.csv', 'myfile.csv');

这是该页面的链接:https ://files.maf.org/mp/forms/ChangePL.php

实际上,该页面不是直接正常访问的,而是通过https://www.maf.org/change在 iframe 中访问

我会说我在转到直接链接时从未产生过错误;只能通过 iframe 从父页面访问它。为什么会这样?

于 2016-04-19T14:48:43.960 回答