【问题标题】:Dowload Files from remote server using phpseclib使用 phpseclib 从远程服务器下载文件
【发布时间】:2016-08-10 02:56:17
【问题描述】:

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

<?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

【问题讨论】:

  • 您可以发布 SSH 日志吗?您可以通过在顶部执行define('NET_SSH2_LOGGING', 2);,然后在exit 之前执行echo $ssh-&gt;getLog(); 来获取它们。
  • 这里是日志:pastebin.com/j9M7tZAM
  • 连接需要一段时间。服务器需要 20 秒来获取 NET_SSH2_MSG_USERAUTH_SUCCESS 数据包,然后需要 10 秒来发送 NET_SSH2_MSG_CHANNEL_REQUEST 数据包,另外需要 20 秒来发送 NET_SSH2_MSG_CHANNEL_DATA 数据包。不知道为什么要花这么长时间,但因为它正在尝试做$sftp-&gt;setTimeout(999999) 或类似的东西。
  • 通过将 Timeout 设置为 999999,错误消息消失了。但是我仍然无法复制文件。并且没有显示其他错误消息。
  • 你能发布一个新的日志文件吗?

标签: php ssh sftp phpseclib


【解决方案1】:

我认为 get 方法适用于 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');

【讨论】:

  • 当我尝试使用“Net_SFTP”时,我无法登录,我收到以下消息:“注意:读取 /home/comdinhe/public_html/phpseclib/Net/SSH2.php 中的通道数据时出错在第 3480 行'。当我尝试使用 $ssh->exec 时没有任何反应。
  • 现在看看echo $sftp-&gt;isAuthenticated() . $sftp-&gt;isConnected() . "\r\n";返回了什么
猜你喜欢
  • 2016-05-24
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
  • 2012-06-15
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
  • 1970-01-01
相关资源
最近更新 更多