php - 无法连接到 phpseclip 中的主机(sftp)
问题描述
我必须连接到客户端 sftp 才能上传数据。这是我连接到客户端 sftp 的代码:
$sftp = new Net_SFTP('some ip', 22);
if (!$sftp->login('username', 'password'))
{
exit('Login Failed');
}
但我收到此错误“无法连接到主机。第 800 行 SSH2.php 中的横幅超时”
SSH2.php 第 800 行是:
user_error(rtrim("Cannot connect to $host. Banner timeout"), E_USER_NOTICE);
任何人都可以解释这个描述:
在 Windows 上,这会返回“警告:检测到无效的 CRT 参数”错误
800 SSH2.php 行上方显示的描述
解决方案
目前尚不清楚您使用的是什么版本。您显然没有使用最新的 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
期望能够帮助您的人不得不强制每个版本找出user_error(rtrim("Cannot connect to $host. Banner timeout"), E_USER_NOTICE);
第 800 行的版本是不合理的。
也就是说,我确实注意到当前版本没有说Banner timeout
. 我能找到的最接近的线路是这一行:
user_error(rtrim("Cannot connect to $host. Error $errno. $errstr"));
($errno
并且$errstr
来自 fsockopen,在这种情况下)
我做了一些挖掘。看起来“横幅超时”至少 3.5 年没有出现在错误消息中:
所以这至少是你的 phpseclib 安装的年龄。它可能比这更古老。所以我建议升级。
推荐阅读
- python - 如何在 Tkinter 画布上隐藏图像?
- javascript - 我如何验证而不需要刷新页面?
- python - 如何下载 pypi 中不再存在的旧版本的 tar.gz 文件?
- docker - ddev + elasticsearch 最新版本的问题
- ios - 带有 2 个部分选择的 UITableview
- c# - 如何检测连接请求是否来自现有连接的客户端?
- android - 如何使用背景和图标创建 android drawable xml 状态
(svg) - excel - Excel VBA中的垂直到水平转置
- postgresql - 恢复我从远程转储的 postgres 数据库
- javascript - React - 使用不断变化的道具渲染对象