我需要从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).
答案 0 :(得分:1)
请对PHP SSH实现使用“ phpseclib”。 下面是示例:
<?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');
?>
答案 1 :(得分:0)
这是一个权限问题,而 www-data 用户没有对 /var/www/.ssh 目录的写权限(/ var / www是默认目录www数据用户的文件夹)。
通过运行以下命令可以解决此问题
mkdir /var/www/.ssh
chown -R www-data:www-data /var/www/.ssh
答案 2 :(得分:-2)
其权限错误。您需要在命令前添加-'sudo'。
sudo shell_exec("ssh -o StrictHostKeyChecking=no root@$host 'ps axo pid,cmd'")