我总是运行带有LAMP的Raspberry Pi,以及第二台具有更大马力的服务器。我希望能够从Raspberry Pi上的PHP页面启动并关闭第二台服务器。我在Raspberry Pi页面上的代码是:
<form action="" method="POST">
<input type="Submit" value="Wake Up" name="WOL_Submit">
<input type="Submit" value="Shutdown" name="WOL_shutdown">
</form>
<?php
if(isset($_POST['WOL_Submit']))
{
exec('sudo etherwake AA:BB:CC:DD:EE:FF');
echo "WOL Packet sent...";
}
if(isset($_POST['WOL_shutdown']))
{
exec('ssh user@192.168.1.100 "sudo /sbin/shutdown -P 0"');
echo "Shutdown sent...";
}
?>
我已经设置了SSH密钥,因此当从Pi到第二台服务器的SSH时我不需要输入密码,如果我正常使用putty,这可以正常工作。
在第二台服务器上,我还使用user ALL=(ALL) NOPASSWD: /sbin/shutdown
将用户添加到visudo。
网页上的Wake on LAN命令工作正常,第二台服务器启动,但shutdown命令没有启动。我收到消息&#39; Shutdown sent ...&#39;但服务器没有关机。我试过交换&#34;和&#39;在exec('ssh user@192...
命令中,并尝试使用ssh -t
,但服务器仍未关闭。
答案 0 :(得分:0)
尝试ssh -i / path / to / id_rsa user @ 192 ....并确保密钥为chmod 600并由www-data拥有,或者运行的任何用户php