我必须连接到客户端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行
答案 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年没有出现在错误消息中了:
因此,至少这是您的phpseclib安装的年龄。它可能比这更旧。所以我建议升级。