更改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