【问题标题】:Can't change directory using phpseclib library无法使用 phpseclib 库更改目录
【发布时间】:2019-11-13 21:36:54
【问题描述】:

我想用 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】:

    如果您read the documentation,则说明:

    如果在交互式 shell 上完成,您收到的第一个密码的输出将(取决于您的系统设置方式)与第二个密码的输出不同。然而,上面的代码 sn-p 将产生两条相同的行。

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

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

    所以你需要将两个命令放在同一个 exec 中:

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

    【讨论】:

    • 非常感谢。
    • 没问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2015-12-28
    • 1970-01-01
    • 2016-04-30
    • 2015-05-26
    相关资源
    最近更新 更多