PHP shell_exec работает с ssh - PullRequest
       50

PHP shell_exec работает с ssh

2 голосов
/ 08 ноября 2010

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

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

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

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

Ответы [ 3 ]

1 голос
/ 08 ноября 2010

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

0 голосов
/ 08 ноября 2010

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

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

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

0 голосов
/ 08 ноября 2010

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

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

sudo su www-data

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

ssh remoteUser@remoteHost

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

...