Я хочу створити завдання RSync, яке з'єднувалося б через SSH.
У мене є комп'ютер (резервне копіювання @ myhost) та віддалений хост (тест @ remhost), і мені потрібно створити резервну копію папки ~ / щось із усім вмістом. Тест користувача ssh має лише доступ READ до всіх файлів і папок у папці ~ /. Я хочу використовувати rsync для копіювання папки test @ remhost: ~ / something у папку резервного копіювання @ 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 або будь-які інші). Я просто хочу просту команду, яка б увійшла до мене і зробила роботу.
EDIT: Можливий сценарій, якщо автентифікація відкритого ключа відключена, і ви не можете змінити це. Наприклад, якщо ви використовуєте OpenSSH, для редагування файлу sshd_config
та додавання вам знадобляться кореневі привілеї на сервері PubkeyAuthentication yes
.
EDIT: Ось що, нарешті, спрацювало для мене:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
Зверніть увагу, що цей метод не вважається безпечним, оскільки він надсилає пароль у простому тексті, і він уразливий для атак людини в середині. Для більш сильної безпеки радимо використовувати аутентифікацію ключів.