我正在使用 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/