Я хочу настроить работу RSync, которая будет подключаться через SSH.
У меня есть компьютер (backup @ myhost) и удаленный хост (test @ remhost), и мне нужно сделать резервную копию папки ~ / что-то со всем ее содержимым. Пользовательский тест ssh имеет доступ только для чтения ко всем файлам и папкам в папке ~ /. Я хочу использовать rsync для копирования папки test @ remhost: ~ / что-то в папку backup @ myhost: ~ / bak.
Для этого я использую следующую команду через BASH в Ubuntu 11.10 (Oneiric):
rsync -avz -e ssh test@remhost:~/something/ ~/bak/
После нажатия Enter я получаю это:
test@remhost's password:
Я набираю пароль и rsync работает.
Я хочу сделать указанную выше команду для автоматического ввода пароля и передачи его в качестве параметра или для автоматического ввода и запуска задания.
Я пытался выполнить, rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/
но он все еще просит пароль, и это раздражает.
Я не хочу слышать о каких-либо ключах (RSA, DSA или любых других). Я просто хочу простую команду, которая будет входить в систему и выполнять работу.
РЕДАКТИРОВАТЬ: Возможный сценарий может быть, если аутентификация с открытым ключом отключена, и вы не можете изменить это. Например, если вы используете OpenSSH, вам понадобятся привилегии root на сервере, чтобы редактировать sshd_config
и добавлять файлы PubkeyAuthentication yes
.
РЕДАКТИРОВАТЬ: Это то, что, наконец, работал для меня:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
Обратите внимание, что этот метод не считается безопасным, так как он отправляет пароль в виде обычного текста и уязвим для атак «человек посередине». Рекомендуется использовать ключ аутентификации для большей безопасности.