无法使用phpseclib库更改目录

问题描述 投票:0回答:1

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

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

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

php phpseclib
1个回答
0
投票

如果您是read the documentation,则说明:

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

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

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

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

$ssh->exec('cd /home/; ls');
© www.soinside.com 2019 - 2024. All rights reserved.