Веб-сервер для запуска сценария оболочки ssh

0

У меня это было много, но ни один из результатов, которые я нашел, не работал для меня. До сих пор я только пытался сделать это с помощью php, но cgi, javascript или все, что работает, отлично со мной, пока он выполняет свою работу.

Я хотел бы получить доступ к определенному URL-адресу на моем веб-сервере debian. После открытия в браузере этот файл должен выполнять следующие команды оболочки. Нет кнопок или ссылок. Если возможно, я хотел бы просто открыть URL-адрес, а затем запустить скрипт.

    ssh [email protected] <<'ENDSSH'
    osascript ~/Desktop/Scripts/script.scpt

При запуске в качестве обычного файла.sh он отлично работает. Я создал блокировки, чтобы при подключении от A до B. не запрашивался пароль. Что я могу сделать, чтобы вызвать это, например, с браузера на моем смартфоне?

Я не пытаюсь подключиться напрямую с любого устройства к Mac, содержащего script.scpt. Очень важно, чтобы сервер debian запускал его и выполнял веб-сервер.

Я только начал изучать терминальные комментарии, скрипты и т.д., Поэтому у меня есть очень базовые знания предмета. Пожалуйста, будьте терпеливы со мной.

Заранее спасибо за вашу помощь :)

  • 0
    Вы можете использовать exec в PHP (или любом другом языке сценариев) для запуска программы из командной строки. Вы захотите выполнить команду SSH. Затем вы можете добавить команду для запуска SSH. Это будет выглядеть так: exec ('ssh [email protected] oascript ~ / Desktop / Scripts / script.scpt'); Конечно, это потребует от вас использовать ssh-ключи для входа в систему вместо пароля.
Теги:
ssh
eventtrigger

1 ответ

0

Для простоты я предпочитаю создавать сценарий bash. Позвольте называть это

/var/NONwebroot/sshcoolstuff.sh

#!/bin/bash
  ssh [email protected] <<'ENDSSH'
  osascript ~/Desktop/Scripts/script.scpt

убедитесь, что он выполним

<?php

exec('/var/NONWwebroot/sshcoolstuff.sh');

?>

Теперь я бы рекомендовал поместить некоторую защиту на этот скрипт PHP. Либо ограничьте доступ к нему по IP-адресу, либо паролю, либо и то, и другое.

вот тестовый сценарий bash для вас

#!/bin/sh
cat > test << EOF
Hello World!
This is my test text file.

You
can also
have
a whole lot
more text and
lines
EOF
  • 0
    Спасибо. Я пробовал это, но безуспешно. Нужно ли изменять учетные записи пользователей, чтобы это работало? Мне сказали, что apache, скорее всего, работает как пользовательские www-данные, поэтому не имеет домашнего каталога (и ssh-id) и не может его идентифицировать. Я собираюсь попробовать, будут ли разные сценарии (которые не требуют домашнего доступа) работать с этим сценарием bash.
  • 0
    Поэтому я создал другой сценарий тестирования bash. php.sh #!/bin/bash zenitfy --info --text="This is a test." sudo chmod +x php.sh Затем создал trigger.php <?php exec('/var/scripts/php.sh'); ?> sudo chmod 660 trigger.php Когда я открываю php-файл, ничего не происходит.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню