PHP shell exec запускает shellscript с помощью ssh


У меня есть shellscript с подключением к другой машине с ssh и ключом, поэтому ему не нужны имя пользователя и пароль.

Когда я запускаю этот скрипт из командной строки, он работает нормально.. но когда я запускаю этот скрипт с php shell_exec, он не работает.

Если я установлю ssh-соединение с PHP и запущу скрипт от имени своего пользователя, это сработает.

Теперь мой вопрос: D Есть ли способ просто запустить скрипт в shell_exec с php без установления соединения через ssh как другой пользователь?

Author: Haim Evgi, 2010-11-08

3 answers

Правильно ли вы указали файл закрытого ключа?

 1
Author: AndreKR, 2010-11-08 16:13:28

Если вы используете Ubuntu или Debian, веб-сервер работает с именем пользователя www-данные . Для других систем, пожалуйста, проверьте конфигурацию веб-сервера на наличие имени пользователя. Вы можете просто проверить, может ли этот пользователь (и ваше веб-приложение php) подключиться по SSH.

1) Станьте пользователем вашего веб-сервера

sudo su www-data

2) Попробуйте подключить удаленный хост

ssh remoteUser@remoteHost

Если вы подключитесь без ввода пароля, должна возникнуть другая проблема. Если вы должны ввести пароль, файлы ключей были сохранены для другого пользователя, а не для www-данных. Вы уже настроили SSH для использования ключа. Сделайте то же самое для вашего локального пользователя www-данные , и это сработает.

 0
Author: Jens Bradler, 2010-11-08 11:10:56

Похоже, ssh-соединение не работает с shell_exec. Если я запущу shellscript в разделе ssh2_exec, это, похоже, сработает.

Что немного странно, так как ssh-соединение выполняется в файле сценария с открытым и закрытым ключами.. Я бы предположил, что это будет просто выполняться: s

Веб-серверу разрешено выполнять файл, так как там есть другие команды, которые работают должным образом.

 0
Author: Chris, 2012-08-15 17:29:17