无法使用phpseclib库更改目录

时间:2019-11-13 13:29:46

标签: php phpseclib

我想使用phpseclib库更改PHP中的目录,但是它不起作用。

$ssh = new Net_SSH2('localhost');
if (!$ssh->login('root', 'pass')) {
    exit('Failed to connect!');
}
$ssh->exec('cd /home/');
echo $ssh->exec('ls');

为什么这总是只输出根目录文件/文件夹...,而不将目录更改为home?

1 个答案:

答案 0 :(得分:1)

如果您read the documentation指出:

  

如果在交互式shell上完成,则第一个密码的输出(取决于系统的设置)将与第二个密码的输出不同。但是,以上代码段将产生两条相同的行。

     

这样做的原因是,一旦exec()运行并且通道已删除,您对一次性shell所做的任何“状态更改”都将消失。

     

您可以在Linux上通过执行$ ssh-> exec('cd /; pwd')

来解决此问题。

因此,您需要将两个命令放在同一exec中:

$ssh->exec('cd /home/; ls');