Мне нужно запустить эту команду из 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).






ошибка разрешения. вам нужно добавить - 'sudo' перед командой.
sudo shell_exec("ssh -o StrictHostKeyChecking=no root@$host 'ps axo pid,cmd'")
ах да! ... извините моя плохая.
Пожалуйста, используйте "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');
?>
Тогда возьмите это как параметр. и этот код запускается при отправке формы.
Взгляните на phpseclib.sourceforge.net/ssh/auth.html, также поддерживаются другие типы авторизации.
Это проблема с правами доступа, в то время как у пользователя www-data нет прав на запись в каталог /var/www/.ssh (/ var / www - это домашняя папка по умолчанию для пользователя www-data).
Проблема должна быть решена, выполнив следующие команды
mkdir /var/www/.ssh
chown -R www-data:www-data /var/www/.ssh
Создайте этот каталог и сделайте его владельцем
www-data.