我有一个总是运行的树莓皮灯安装,第二个服务器有更多的马力。我希望能够从Raspberry Pi上的PHP页面启动和关闭第二个服务器。我在覆盆子皮页上的代码是:
<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时,不需要输入密码,如果我正常SSH(例如使用putty)的话,这很好。
在第二台服务器上,我还使用
user ALL=(ALL) NOPASSWD: /sbin/shutdown
将用户添加到visudo。网页上的Wake on LAN命令运行良好,第二个服务器启动,但shutdown命令不起作用。我收到消息“Shutdown sent…”,但服务器没有关闭。我试过在
exec('ssh user@192...
命令中交换“and”,也试过使用ssh -t
,但服务器仍然没有关闭。 最佳答案
试试ssh-i/path/to/id_rsa user@192。。。。并确保密钥是chmod 600,归www data所有,或者是php作为
关于php - 使用PHP关闭远程Linux服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37624700/