无法连接到phpseclip中的主机(sftp)

时间:2018-08-29 08:16:38

标签: php sftp phpseclib

我必须连接到客户端sftp才能上传数据。 这是我连接到客户端sftp的代码:

$sftp = new Net_SFTP('some ip', 22);
        if (!$sftp->login('username', 'password')) 
        {
            exit('Login Failed');
        }

但是我收到此错误“无法连接到主机。SSH2.php在800行上出现横幅超时”

SSH2.php第800行是:

user_error(rtrim("Cannot connect to $host. Banner timeout"), E_USER_NOTICE);

任何人都可以解释此描述:

  

在Windows上,这将返回“警告:检测到无效的CRT参数”错误

说明显示在第800 SSH2.php行

1 个答案:

答案 0 :(得分:2)

不清楚您使用的是哪个版本。您显然没有使用最新的2.0版本:

https://github.com/phpseclib/phpseclib/blob/2.0.11/phpseclib/Net/SSH2.php#L800

您使用的不是最新的1.0版本:

https://github.com/phpseclib/phpseclib/blob/1.0.11/phpseclib/Net/SSH2.php#L800

指望可能能够帮助您的人们必须蛮力地使用每个版本来找出第800行上带有user_error(rtrim("Cannot connect to $host. Banner timeout"), E_USER_NOTICE);的版本是不合理的。

也就是说,我确实注意到没有最新版本显示Banner timeout。我能找到的最接近的直线是:

user_error(rtrim("Cannot connect to $host. Error $errno. $errstr"));

(在这种情况下,{$errno$errstr来自fsockopen)

我做了一些挖掘。似乎“横幅广告超时”至少有3.5年没有出现在错误消息中了:

https://github.com/phpseclib/phpseclib/commit/23c65c383945cfc9c2293f45a7cbc6f1a68178ec#diff-82a5983a6daace4acbcc65edf2dfb605

因此,至少这是您的phpseclib安装的年龄。它可能比这更旧。所以我建议升级。