使用phpseclib时意外行为(Unexpected behavior when using ph

2019-10-18 16:10发布

我最近试图实现phpseclib库登录到SFTP服务器,列出目录中的所有文件并进行下载。 下载它们后,它们移动到服务器上的不同目录中。

我没有多少运气。所以直接从下面的代码的网站 ,倒是记录。

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

require('Net\SSH2.php');
require('Crypt\RSA.php');   

define('NET_SSH2_LOGGING', 2);
$ssh = new Net_SSH2('host_name', 'port');
$key = new Crypt_RSA();
$key->loadKey(file_get_contents('path_to_rsa_file'));
if (!$ssh->login('username', $key)) {
  exit('Login Failed');
}

$ssh->exec("pwd");

这将导致以下错误:

Unable to request pseudo-terminal

诚然,这是一个老的版本,我不知道到底是哪一个,所以我想,也许我应该更新。 通过作曲家在最新版本的拉动,并运行相同的代码上面后,我没有得到任何错误,但我得到这个在日志中:

<- NET_SSH2_MSG_USERAUTH_SUCCESS (since last: 0.1395, network: 0.1394s)

-> NET_SSH2_MSG_CHANNEL_OPEN (since last: 0.0006, network: 0.0005s)
00000000  00:00:00:07:73:65:73:73:69:6f:6e:00:00:00:00:7f  ....session.....
00000010  ff:ff:ff:00:00:40:00                             .....@.

<- NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION (since last: 0.1232, network: 0.1231s)
00000000  00:00:00:00:00:00:00:00:ff:ff:ff:ff:00:00:80:00  ................

-> NET_SSH2_MSG_CHANNEL_REQUEST (since last: 0.0008, network: 0.0006s)
00000000  00:00:00:00:00:00:00:04:65:78:65:63:01:00:00:00  ........exec....
00000010  03:70:77:64                                      .pwd

<- NET_SSH2_MSG_CHANNEL_FAILURE (since last: 0.123, network: 0.1228s)
00000000  00:00:00:00                                      ....

有人有想法么? 我也试着使用SFTP类,但它未能与其他问题“的通知:连接过早关闭”。

谢谢你的帮助!

Answer 1:

看起来像服务器只是不支持exec() 你可能有更好的运气read() / write()

http://phpseclib.sourceforge.net/ssh/examples.html#interactive

至于SFTP ......我需要看看日志有什么想法。



文章来源: Unexpected behavior when using phpseclib