繁体   English   中英

无法使用 phpseclib 库更改目录

[英]Can't change directory using phpseclib library

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

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

为什么这总是 output 仅根目录文件/文件夹......并且不将目录更改为主目录?

如果您阅读文档,它会指出:

如果在交互式 shell 上完成,那么您收到的第一个密码 output 将(取决于您的系统设置方式)与第二个密码的 Z78E6221F6393D1356681DB398F14CE6 不同。 然而,上面的代码片段将产生两行相同的行。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM