【问题标题】:phpseclib - Entering value to promptphpseclib - 输入值提示
【发布时间】:2013-04-24 20:57:03
【问题描述】:

我找不到与此问题相关的示例。 我想输入值来提示我发送命令后的提示

我发送这个命令:

$ssh->exec('sudo pure-pw useradd '.$server_dir.' -u ftpuser -d /home/ftpusers/'.$server_dir);

如果使用 putty,它应该返回一个提示。这不是 sudo 密码(我已禁用用户的密码提示)。密码提示是针对 ftp 用户的。

Password:

之后:

Enter it again:

我想知道,我怎样才能用 phpseclib 回答他们? 我试过了:

$ssh-exec('password');
$ssh-exec('password');

但它不起作用,所以我现在有点卡住了。

编辑// 我也尝试使用读写,但是页面一直在加载..

【问题讨论】:

    标签: php ssh phpseclib


    【解决方案1】:

    好吧,我终于搞定了,代码如下:

    $ssh->write('sudo pure-pw useradd '.$server_dir.' -u ftpuser -d /home/ftpusers/'.$server_dir."\r\n");
    $ssh->read("Password:");
    $ssh->write($ftp_pw."\r\n");
    $ssh->read("Enter it again:");
    $ssh->write($ftp_pw."\r\n");
    $ssh->exec("sudo pure-pw mkdb");
    

    【讨论】:

    • 在你写完最后一篇文章之后,我个人认为你最好先写$ssh->read('prompt'),然后再写$ssh->write('sudo ...')。但是,如果你正在做的工作,那么它也很有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    相关资源
    最近更新 更多