Я пробую к скопировать/вставить ssh ключу в authorized_keys файл на экземпляре Ubuntu ec2 из сценария PHP, который выполняет команду shell_exec.
Я добираюсь, полномочия отклонили ошибку. Это - www-пользователь-данных поединка, не имеющий доступ к корневым полномочиям. Но если я делаю это затем, это - потенциальная угроза нарушения безопасности, и я не уверен в осуществимом решении..
Я искал онлайн, но я не мог найти удовлетворительные результаты. Существует ли способ заставить его работать от php? Или как еще я могу сделать это?
Править:
Пользователь является www-данными.
PHP-СКРИПТ:
$out = shell_exec('sh /var/www/html/updatekey.sh '.$PUBKEY.' 2>&1');
СЦЕНАРИЙ Updatekey.sh:
#!/bin/sh
pkey="${1}";
authpath="/home/ubuntu/.ssh/authorized_keys";
copykey=`grep -qF -- "$pkey" "$authpath" || echo "$pkey" >> "$authpath"`
echo $copykey
Я отправляю открытый ключ в Сценарий PHP для добавления в authorzied_keys файле потому что, когда я выполняю эту команду:
ssh-copy-id -i /PATH/TO/PUBLIC/KEY USER@SERVER
Я добираюсь, полномочия отклонили ошибку. И теперь я получаю ту же ошибку в Сценарии PHP также.
Существует ли способ заставить его работать от php?
Не совсем.
Как копия ssh ключ к authorized_keys с помощью php shell_exec?
Мы делаем вещи как это на 2 шагах:
Выполнения сценария крона как корень так способны к выполнению обновления.