Как мне перезагрузить ubuntu 16.04 удаленно?
Привет,
Я пытаюсь перезагрузить свою Ubuntu 16.04 через PHP.
Я установил расширение SSH2, пишу код, и у него есть проблема:
SSH connection: [OK] Athentication: [OK] Shell: [OK] reboot -i Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-66-generic x86_64) * Documentation: https://help.ubuntu.com/ 332 packages can be updated. 4 updates are security updates. Last login: Sun Mar 12 18:50:57 2017 from 192.168.80.137 ]0;lam@lam: ~lam@lam:~$ reboot Failed to set wall message, ignoring: Interactive authentication required. Failed to reboot system via logind: Interactive authentication required. Failed to start reboot.target: Interactive authentication required. See system logs and 'systemctl status reboot.target' for details. Failed to open /dev/initctl: Permission denied Failed to talk to init daemon.
Затем я использую командную строку:
#chmod 777 /dev/initctl
Это работа, перезагрузка Ubuntu через PHP!!!!.
Но после перезагрузки, я пробую php код, который я получаю, я показываю аналогичную ошибку выше. Я должен снова #chmod 777 /dev/initctl, чтобы сохранить его работу.
Пожалуйста, помогите мне.
P/s: Вот мой php-код
<?php echo "SSH connection: "; if (!($resource=@ssh2_connect("192.168.80.137"))) { echo "[FAILED]<br />"; exit(1); } echo "[OK]<br />"; echo "Athentication: "; if (!@ssh2_auth_password($resource,"lam","root")) { echo "[FAILED]<br />"; exit(1); } echo "[OK]<br />"; echo "Shell: "; if (!($stdio = @ssh2_shell($resource,"xterm"))) { echo "[FAILED]<br />"; exit(1); } echo "[OK]<br />"; //$permission = "chmod 777 /dev/initctl \n"; //fwrite($stdio,$permission); $command = "reboot\n"; fwrite($stdio,$command); sleep(1); while($line = fgets($stdio)) { flush(); echo $line."<br />"; } fclose($stdio); ?>
Что я уже пробовал:
Перезагрузите мой Ubuntu 16.04 через PHP.
Peter_in_2780
/dev/initctl-это канал, воссоздаваемый каждый раз при перезагрузке. Так что ваш chmod не упорствует.
Чтобы перезагрузить мой сервер Ubuntu 16.04 LTS удаленно, я подключаюсь по ssh и "sudo reboot". Кстати, я использую строгую аутентификацию. Нет имя пользователя/логин пароль.
Member 10390715
Спасибо вам. И это мое решение. Я включаю SSH от пользователя root.
откройте файл конфигурации sshd /etc/ssh/sshd_config и измените строку:
ОТ:
PermitRootLogin запретить-пароль
ТО:
Настроен с параметром да
И мне не нужно использовать "sudo"
Albert Holguin
К вашему сведению... это считается плохим для безопасности, поэтому функция по умолчанию отключена.