Как запустить команду SSH из www-data

Мне нужно запустить эту команду из php / nginx (www-data)

shell_exec("ssh -o StrictHostKeyChecking=no root@$host 'ps axo pid,cmd'")

Но получи эту ошибку

Failed to add the host to the list of known hosts (/root/.ssh/known_hosts).
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).

Создайте этот каталог и сделайте его владельцем www-data.

emix 03.07.2018 11:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
1 379
3

Ответы 3

ошибка разрешения. вам нужно добавить - 'sudo' перед командой.

sudo shell_exec("ssh -o StrictHostKeyChecking=no root@$host 'ps axo pid,cmd'")

ах да! ... извините моя плохая.

Puneet Sethi 03.07.2018 19:32

Пожалуйста, используйте "phpseclib" для реализации PHP SSH. Ниже приведен пример:

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.example.com');
if (!$ssh->login('uname', 'password')) {
    exit('Login Failed');
}

echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
?>

Тогда возьмите это как параметр. и этот код запускается при отправке формы.

JavidRathod 03.07.2018 11:39

Взгляните на phpseclib.sourceforge.net/ssh/auth.html, также поддерживаются другие типы авторизации.

Nico Haase 03.07.2018 11:39

Это проблема с правами доступа, в то время как у пользователя www-data нет прав на запись в каталог /var/www/.ssh (/ var / www - это домашняя папка по умолчанию для пользователя www-data).

Проблема должна быть решена, выполнив следующие команды

mkdir /var/www/.ssh
chown -R www-data:www-data /var/www/.ssh

Другие вопросы по теме