我希望在我的服务器上使用SSH在远程设备上连接并运行命令。当我在像Putty这样的SSH客户端中尝试命令时,它可以完美地运行。但是当我使用PHP脚本编写它时,该命令将不会被执行。有什么想法吗?
<?php
$host = "192.168.0.184";
$user = "user";
$password = "password";
$cmd = "reboot";
$ssh = ssh2_connect($host);
$sshLogin = ssh2_auth_password($ssh, $user, $password);
$sshExec = ssh2_exec($ssh, $cmd);
?>
在设备日志中,我可以看到用户已成功通过身份验证,但没有其他内容。
答案 0 :(得分:0)
我用这个代码解决了我的问题...使用交互式shell和sleep after命令。工作正常。
<?php
echo "SSH connection: ";
if (!($resource=@ssh2_connect("your_host"))) {
echo "[FAILED]<br />";
exit(1);
}
echo "[OK]<br />";
echo "Athetication: ";
if (!@ssh2_auth_password($resource,"your_user","your_password")) {
echo "[FAILED]<br />";
exit(1);
}
echo "[OK]<br />";
echo "Shell: ";
if (!($stdio = @ssh2_shell($resource,"xterm"))) {
echo "[FAILED]<br />";
exit(1);
}
echo "[OK]<br />";
$command = "reboot\n";
fwrite($stdio,$command);
sleep(1);
while($line = fgets($stdio)) {
flush();
echo $line."<br />";
}
fclose($stdio);
?>