2013-04-24 116 views
0

我找不到与此问题相关的示例。 我想输入值提示自带我发送一个命令phpseclib - 输入提示值

后,我送这个命令:

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

,它应该如使用腻子返回的提示。这不是sudo密码(我禁止密码提示用户)。密码提示是针对ftp用户的。

Password: 

Enter it again: 

我在想,我怎么会回答他们phpseclib? 我想:

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

,但它不工作,所以我现在有种卡住。

编辑// 我使用读写也试过,但页面不断加载永远..

回答

2

好了,所以最后我得到它的工作,下面的代码:

$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"); 
+0

执行完最后写我,个人认为你可能会更好地执行'$ ssh-> read('prompt')'然后执行'$ ssh-> write('sudo ...')'。但是,如果你在做什么,那么这个工作太大声了。 – neubert 2013-04-24 15:05:51