php - 使用 phpseclib 从远程服务器下载文件

标签 php ssh sftp phpseclib

我正在使用 phpseclib 库中的以下代码登录远程服务器(远程服务器使用:SFTP - SSH 文件传输协议(protocol)):

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

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

运行上述代码后,我收到以下消息:
Notice: Error reading channel data in /home/comdinhe/public_html/phpseclib/Net/SSH2.php on line 3480

Notice: Connection closed prematurely in /home/comdinhe/public_html/phpseclib/Net/SSH2.php on line 3500

Login Failed

有谁知道可能会发生什么?

日志:http://pastebin.com/j9M7tZAM

最佳答案

我认为 获取 方法适用于 Net_SFTP。

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

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

echo $sftp->pwd() . "\r\n";
$sftp->get(
    '/sianbima/cbfundo/cbfundo_00000_20160808_171429.txt',
    '/home/comdinhe/public_html/testeArquivo.txt'
);
?>

或者您可以尝试在 ssh 中执行 rsync 命令。
$ssh->exec('rsync -avz /sianbima/cbfundo/cbfundo_00000_20160808_171429.txt /home/comdinhe/public_html');

关于php - 使用 phpseclib 从远程服务器下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38854996/

相关文章:

php - 有没有办法让 Moneybookers 状态 url 与 localhost 一起使用

c# - SharpSSH 卡在 C# SSH 应用程序中的无限流读取中

php - ffmpeg:在php中使用返回的数据

python - 直接从 SFTP 服务器将音频文件加载到 Python 语音识别模块(使用 Paramiko SFTPClient)

php - 如何验证 PHP 表单输入和数据库提交

php - PHP中的多维数组转换为字符串

linux - 通过 SFTP 传输文件

java - org.apache.commons.vfs.FileSystemException : Could not connect to SFTP server at "sftp://username:***@114.XX.XX.XX/" on port 21

php - 参数 1 使用 Axios Vue 和 Laravel 7 传递给 Symfony\Component\HttpFoundation\Response::setContent()

java - 与 Android 的 SSH