【发布时间】:2019-08-03 20:17:42
【问题描述】:
我尝试使用 phpseclib 将“passwd”命令解析到我的机器,但它无法通过第一个密码输入。看下面的代码。
$ssh->write("
passwd $new_user\n
$new_user_pw\n
$new_user_pw\n
");
$ssh->setTimeout(5);
echo $ssh->read('root@machine:~$');
我得到的输出是:
Last login: Tue Jun 17 12:23:01 2014 from 109.175.60.43 [root@machine ~]# [root@machine ~]# [root@machine ~]# passwd 8917f498 Changing password for user 8917f498. New password:
或者我可以用其他方法吗?
谢谢
【问题讨论】:
-
您需要
popen并将您的新密码作为输入传递给程序。正如现在所写的那样,您将三行文本传递给 SHELL,而不是一个命令 + 该命令的 2 行输入 -
我该怎么做?感谢您的评论。
-
php.net/popen 或 php.net/proc_open 如果您需要双向通信
标签: php linux ssh phpseclib libssh