2014-07-26 63 views
0

所以,我使用SSH lib和一切工作正常使用簡單的ssh查詢:PHP SSH查詢失敗對特定的查詢執行

mkdir mydir 

,但是當我試圖更改用戶密碼,它不沒有工作,我已經在膩子中複製了相同的查詢文本,在那裏工作正常。我認爲這是其他問題。 我的用戶密碼:

$ssh->SendCommand('echo -e "'.$new_pw.'\n'.$new_pw.'" | passwd '.$sd[0]['port'].'');

+0

先得到你的命令的輸出。你可能會看到那裏沒有換行符。單引號中的'\ n'在PHP中不起作用。 –

+0

那麼我應該使用什麼字符? – user3849197

+0

用'\ n'添加換行符只能在雙引號內起作用。 '「\ n」'插入換行符,'\ n''插入'\ n'。 –

回答

1

使用phpseclib, a pure PHP SSH implementation

$ssh->enablePTY(); 
$ssh->exec('passwd'); 
$ssh->write("newpw\n"); 
$ssh->read('password:'); // full string is "Retype new UNIX password:" 
$ssh->write("newpw\n"); 
$ssh->read('success'); // full string is "passwd: password updated successfully"