Нужен scp с www-данными без потребности в пароле

Если Вам нравится идея чего-то свободного и с открытым исходным кодом, BackupPC мог бы быть хорошим вариантом. Это имеет быструю кривую обучения, солнечный веб-интерфейс, и может быть помещено в VM (это работает на Linux), если Вам нравится.

Процесс установки: http://www.howtoforge.com/linux_backuppc

Интеграция с Теневой копией тома (для тех противных заблокированных файлов - не рекомендовал бы сначала): http://www.goodjobsucking.com/?p=62

Виртуальное устройство в качестве примера (я не могу ручаться за его целостность, но сделал бы хороший пример): http://gotitsolutions.org/files

2
задан 26 August 2012 в 01:17
3 ответа

Я использовал inotify для реализации метода, предложенного Джоном Гарденерсом. Это было легко, и теперь все работает нормально. Я только что написал приложение на C ++, которое выполняет scp при изменении файла в каталоге, как это можно сделать из кода PHP. Работает нормально.

Спасибо,
Питер

0
ответ дан 3 December 2019 в 15:40

Прочитав ссылку, которую вы дали: убедитесь, что вы используете authorized_keys, а не authorized_keys2. Последний был объявлен устаревшим в течение многих лет и вообще не работал в некоторых версиях OpenSSH.

Самый простой способ диагностировать это - использовать экземпляр отладки сервера SSH. На сервере запустите:

# /usr/sbin/sshd -ddep 2222

... который запускает демон SSH в режиме отладки, прослушивая порт 2222. Повторите команду scp с помощью:

$ scp -o port=2222 ...

... и посмотрите, что говорит сервер.

К Джону Проблемы безопасности: если вы решите продолжить использование учетной записи www-data, вы можете ограничить ее ключ только определенными действиями (такими как передача определенных файлов), используя параметр «принудительная команда» в authorized_keys.

0
ответ дан 3 December 2019 в 15:40

Вы сказали, что пробовали

    scp -vv /var/www/Src/*.txt 192.168.1.6:/var/www/Dest

Но ключ, который вы хотели бы использовать, нигде не отображается. Попробуйте:

    scp -vvv -i /path/to/private/key /var/www/Src/*.txt 192.168.1.6:/var/www/Dest

В любом случае вы должны убедиться, что ваше соединение ограничено этой конкретной командой. Я не уверен, что SCP предоставляет способы ограничить команду (например, принудительную команду с SSH). Вместо этого я бы использовал SSH вместо rsync, чтобы убедиться, что будет запущена только команда rsync. Это обеспечивает в основном те же услуги, что и scp, но ваш ключ может быть помечен командой force, что может быть безопаснее.

0
ответ дан 3 December 2019 в 15:40

Теги

Похожие вопросы