Что-либо, что Вы делаете, будет небезопасно без использования ssh
и sshd
.
Канонический путь состоит в том, чтобы использовать scp
или еще лучше, rsync
и ssh ключ без пароля.
С другой стороны, создайте ключ, используемый только для копии, и на удаленном конце редактируют authorized_keys файл для содержания только команды (команд), которую необходимо выполнить, и ключ, например:
# remote_server:/home/copyuser/.ssh/authorized_keys:
command="[...]" ssh-rsa KEY_HERE user@host
Существует также scponly
доступный. Если Вы создаете пользователя, устанавливаете их оболочку в /etc/passwd
кому: /usr/bin/scponly
и им не позволят войти, но скопировать файлы в и на нормальные полномочия.
В то время как я предполагаю, что Вы могли использовать защищенный от пароля закрытый ключ, это обычно не рекомендуется для процессов, которые предназначаются для выполнения через крон. Я рекомендовал бы пропустить пароль и затем удостоверившись, что безотносительно учетной записи пользователя, которую Вы используете только, имеет очень ограниченные полномочия на целевом поле. Путем пропуска пароля Вы не должны будете иметь дело с бездельничанием с ssh-agent
.
Вот мои рекомендации:
Строка в качестве примера из удаленного authorized_keys файла:
no-pty,no-agent-forwarding,no-X11-forwarding,no-port-forwarding,command="rsync --server --sender -vlogDtprze.i --ignore-errors --numeric-ids --inplace . /path/on/destination/system" ssh-rsa SSH_KEY_STRING user@host"
Точная команда для помещения там Вас может добраться путем выполнения rsync, управляют, чтобы Вы запланировали использовать, и затем одновременно в удаленной системе делают "PS awwlx | grep rsync".
Примечание: Одна типичная проблема, с которой я сталкиваюсь, состоит в том, что использование, выполняющее задание крона, не имеет ключа удаленного хоста SSH, таким образом, это пытается спросить, ли соединение в порядке. Удостоверьтесь, что Вы помещаете, ключ хоста SSH удаленной системы/etc/ssh/ssh_known_hosts (вероятно, просто копируют его из Вашего собственного ~/.ssh/known_hosts файл после соединения). Поочередно, можно сделать "su - $USER_CRONJOB_RUNS_AS" и затем вручную вызвать команду и удостовериться, что это работает. Кроме того, это хорошо для тестирования задания.
На шаге № 1 (генерируют ключи), когда Вас просят относительно пересказа, необходимо совершить нападки, Входят сразу же - у Вас будет пара ключей пересказа меньше, затем можно пропустить шаг № 3 (настроить ssh-agent
).
Мудрая безопасность, в этой установке, если Ваш ssh клиент скомпрометирован затем ssh сервер (где Вы вытягиваете от) будет также становиться открытой для противника (как некорневой, если Вы не войдете в систему как корень). Это не большая проблема, и это - довольно распространенный способ сделать вещи. Но попытайтесь сделать обновления системы защиты в своих системах Ubuntu периодически.
Что-либо более простое затем, чем эта установка будет довольно низкой безопасностью.
Опции, описанные serverninja, получат Вас повышение уровня защиты (лучшая изоляция между клиентом и сервером), но те установки имеют большую конфигурацию наверху и тяжелее отлаживать.
После того как Вы устанавливаете пару ключей пароля меньше (ключ паба копии к ~/.ssh/autorized_keys на сервере), rsync будет без любых дополнительных опций точно так же, как ssh и scp.