2013-04-24 114 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