更改Unix的遠程服務器上的密碼,我attemping使用phpseclib通過其NET_SSH2功能改變我的遠程服務器的密碼。以下是我正在使用的。通過PHP SSH
<?php
require_once('Net/SSH2.php');
$ssh = new Net_SSH2('server1.server.com');
if (!$ssh->login('user', 'pass')) {
exit('Login Failed');
}
$ssh->write("passwd\n");
$ssh->read('(current) UNIX Password:');
$ssh->write("oldpass\n");
$ssh->read('New password:');
$ssh->write("newpass\n");
$ssh->read('Retype new password:');
$ssh->write("newpass\n");
echo $ssh->read('[prompt]');
?>
每次我的腳本只是掛起,似乎沒有做任何事情。我在這裏可能會做錯什麼?
下面是這個文檔: http://phpseclib.sourceforge.net/documentation/net.html
如果你運行你的程序der'strace(1)',它的_dees_讀的確切字符串是什麼?你爲什麼不等待最初的shell提示?如果您添加調試'echo'語句,它究竟在哪裏停滯? – sarnold 2012-04-12 03:20:32
原來我大寫了一個p字母。現在就像魅力一樣。感謝您的詳細回覆。 – user1328041 2012-04-12 04:41:30
@ user1328041如果你自己發現答案,然後隨意刪除的問題,這樣其他人就不會讀它 – Novellizator 2012-04-12 22:51:39