Поэтому я создаю скрипт PHP, который загружает изображение из моей локальной среды на удаленный сервер. У меня настроены ключи SSH на обоих концах, и если я просто выполняю команду scp в терминале, он иногда не запрашивает пароль, а иногда и делает. Кроме того, по какой-то причине для возврата результата команды scp требуется около 30-60 секунд.

<?php 
    $result = system("scp /home/pi/camImage1.jpg username@<myserver>:~/public_html/folder1/innerfolder/camImage.jpg");
    echo $result;
?> 

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

1 ответ1

0

Как ваш обычный пользователь, я собираюсь догадаться, что у вас есть ключ ssh в menory (ssh-agent), поэтому он не требует пароля после первого подключения. При запуске команды scp с php вы не указали ключ, так что я предполагаю, что вас спрашивают пароль для входа пользователя, а не ключ ssh.

IMO, если вы хотите запустить эту команду через php, я бы посоветовал вам сделать ключ без пароля и на сервере отключить вход через пароль. Затем вы указываете ключ с помощью команды scp.

scp -i /home/pi/.ssh/your_key ...

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .