phpseclib 总是产生登录失败

标签 php sftp phpseclib

我不确定这是否是我做错了什么,或者服务器是否只是不支持 phpseclib 或者什么,但我正在尝试连接到仅接受安全 FTP 连接的 FTP 服务器,并且仅从某些IP 地址。现在我知道 FTP 服务器接受来 self 的 VPS 服务器的连接,因为我已通过 SSH 远程连接到我的 VPS,并成功从命令行手动连接到 FTP 服务器。

但是,当我使用 phpseclib 尝试以下操作时,它总是会到达退出点。

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
include 'Net/SFTP.php';

$sftp = new NET_SFTP('***');
if(!$sftp->login('***', '***')) {
    $sftp->getSFTPErrors();
    exit('Login Failed'); // <-- Code always gets to this point
}

echo $sftp->pwd();

我不确定如何开始调试这个问题。我有asked a question on their forum以及尝试寻求帮助。我尝试使用 define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX); 启用日志记录,然后在导出上方输出 echo $sftp->getSFTPLog(); ,但这并没有不输出任何内容。

在页面上,我刚刚登录失败,因此我没有从$sftp->getSFTPErrors();收到任何错误。

我对在 PHP 中使用安全 FTP 连接完全陌生,不知道我做错了什么。有人可以帮我调试这个问题吗?

最佳答案

从您使用它的方式来看,很明显您没有看到任何错误。 $sftp->getLastSFTPError() 返回一个字符串,而 $sftp->getSFTPErrors() 返回一个数组,这就是您必须回显才能查看问题所在的内容。

尝试

print_r($sftp->getSFTPErrors());

关于phpseclib 总是产生登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18209392/

相关文章:

php - var_export 的替代品

php - 如何在加载 Doctrine 固定装置时禁用控制台中的查询日志记录?

Python pysftp put_r 无法在 Windows 上运行

java - key 生成 Java、加密 php、解密 Java

php - 显示不同媒体类型的提要的最佳方式是什么?

php - 使用 htaccess 获得良好的 SEO 链接

java - SFTP上传文件到同一远程服务器上的多个目录

python - PySFTP 连接有效,但 get() 失败

php - 用户 'root' @'localhost' 的访问被拒绝(使用密码 : YES) using ssh tunnel connection

phpseclib 与 libssh2