Як налаштувати Rsync без пароля з SSH на UNIX / Linux?


19

Як я можу встановити rsync між двома хостами, не надаючи пароля?

linux  ssh  rsync 

Це повинно бути дуже корисним: blogs.oracle.com/jkini/entry/how_to_scp_scp_and
Том

Maverick143 дав відповідь, але це питання насправді не належить до StackOverflow, оскільки воно мало стосується програмування. SuperUser.com був би більш релевантним.
Мартін

Відповіді:


30

Нижче наводиться стаття з Geek Stuff :

1. Тест rsync на ssh (з паролем):

Зробіть rsync, щоб переконатися, що він запитує пароль для вашого облікового запису на віддаленому сервері та успішно копіює файли на віддалений сервер.

Наступний приклад синхронізує локальну папку /home/test з віддаленою папкою /backup/test(на 192.168.200.10сервері).

Тут слід запитати пароль вашого облікового запису на віддаленому сервері.

rsync -avz -e ssh /home/test/ user@192.168.200.10:/backup/test/

2. ssh-keygen генерує ключі.

Тепер налаштуйте sshтак, щоб він не запитував пароль під час виконання ssh. Використовуйте ssh-keygenна локальному сервері для генерації відкритих та приватних ключів.

$ ssh-keygen

Введіть пароль (порожній для без парольної фрази):

Знову введіть ту ж парольну фразу: Примітка. Коли вона просить вас ввести парольну фразу, просто натисніть клавішу Enter, і не вводите тут жодного пароля.

3. ssh-copy-id копіює відкритий ключ на віддалений хост

Використовуйте ssh-copy-id, щоб скопіювати відкритий ключ на віддалений хост.

ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.200.10

Примітка. Вищезгадане запитає пароль для облікового запису користувача на віддаленому хості та автоматично скопіює відкритий ключ у відповідне місце. Якщо ssh-copy-id для вас не працює, використовуйте метод, про який ми говорили раніше, для встановлення пароля ssh без уходу.

4. Виконайте rsync над ssh без пароля

Тепер вам слід мати змогу перейти на віддалений хост без введення пароля.

ssh user@192.168.200.10

Виконайте rsync ще раз, він не повинен просити вас вводити паролі цього разу.

rsync -avz -e ssh /home/test/ user@192.168.200.10:/backup/test/

Це добре допомагає. troy.jdmz.net/rsync/index.html
MangeshBiradar

5
Очистіть копію та вставте з thegeekstuff.com/2011/07/rsync-over-ssh-without-password вам слід посилатися на оригінального автора.
Лоуренс Черон

Якщо вам потрібно скористатися іншим користувачем, ви можете це зробити, виконуючи ssh-copy-id: ssh-copy-id -i ~ / .ssh / id_rsa.pub user@192.168.200.10
Finni McFinger

1

Генеруйте відкритий ключ у ServerA

$ ssh-keygen
$ Enter passphrase (empty for no passphrase):
$ Enter same passphrase again:

Відкритий ключ буде згенеровано та збережено в

~/.ssh/id_rsa.pub

Скопіюйте відкритий ключ на віддалений хост

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100

Або

  • Відкрийте id_rsa.pub, скопіюйте вміст
  • Увійдіть до ServerB за допомогою того самого користувача в команді rsync
  • В ServerB додайте вміст до ~/.ssh/authorized_keys. Створіть файл, якщо його немає. Переконайтесь, що режим файлу 700.

0

Усі ці пропозиції щодо rsync не вдається використовувати останню версію серпня 2017 року на Ubuntu 16.04 LTS. Не один із них працює.

Вони також розділяють дефіцит необхідності використання демон-rsync, що працює на файловому сервері.

Ця відповідь працює із загальним Linux NAS

ТУТ Є КРОКИ:
1) ВИКОРИСТИТИ rsync, як показано нижче. (до каталогу під / mnt або / медіа, який ви створили, або на пристрої, на якому ви монтуєте. Неважливо, який) 2) ПЕРЕВІНТИ файли З scp, як показано нижче. FileZilla також буде працювати.

Все це (крім FileZilla) може працювати в кроні без пароля.


Ця установка працює дуже добре. Єдиний раз, коли вам знадобиться пароль, це коли ви встановите початковий ssh-copy-id для налаштування входу без пароля RSA. Потім ви запрограмуєте його у FileZilla один раз. Після цього день у день жодних підказок пароля не трапляється. Це ЛЕГКО. І найкраща частина полягає в тому, що ви можете використовувати всі переваги програми rsync.

Ця відповідь пояснює, як користуватися rsync без пароля.

Також немає необхідності встановлювати ще один демон (rsync) в будь-якій системі.

Якщо ви ще цього не зробили, зробіть це:

ssh-keygen
ssh-copy-id -i ~/.ssh/id_rse.pub NASserver

і перевірити це за допомогою цього:

ssh NASserver

а може, щось подібне:

scp myfile myusername@NASserver:Documents

У мене є другий жорсткий диск, тому я використовую rsync, щоб скопіювати завантажувальний диск у підкаталог на sdb1 (встановлений під / mnt та виключений з rsync).

Якщо у вас немає фізичного жорсткого диска і у вас є достатньо місця, просто створіть підкаталог під / mnt (або / медіа) та скористайтеся цим.

Поки каталог виключається, не має значення, знаходиться він на окремому диску чи ні.

Ось резервний сценарій:

cls
echo "EMPTYING TRASH"
rm ~/.local.share/Trash/*
echo "====================================================================="
echo "         BEGINNING rsync from root to /mnt/full/sysbkp"
echo "====================================================================="
time sudo rsync -aAXv / --delete --ignore-errors --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/full/mysystem

ПІСЛЯ rsync використовуйте сценарій:

Я завжди створюю новий каталог на цільовому NASserver: / mnt / fullsys / mysystem, тому передаються лише відповідні файли.

ssh -e"mv /mnt/fullsys/mysystem mysystem.bak" myusername@NASserver
ssh -e"mkdir /mnt/fullsys/mysystem" myusername@NASserver
scp -r /mnt/full/mysystem myusername@NASserver:/mnt/fullsys/mysystem

Вуаля! Це займає деякий час, але потім це робиться.

Обидва сценарії можуть чудово працювати в кроні.


Альтернативою є використання FileZilla для відправки на сервер NAS вручну.

Оскільки можна видалити, я завжди make a new directory and enter itчерез FileZilla на цільовому жорсткому диску 1 ТБ, тому передаються лише відповідні файли.

Лише після завершення передачі я видаляю старішу версію.

Вуаля. Успіх.


-1

позначте адресу користувача краще

ssh-copy-id -i ~/.ssh/id_rsa.pub <user_in_server>@192.168.1.100

2
Хоча це може відповісти на питання, було б кращою відповіддю, якщо ви могли б дати пояснення, чому це так.
DavidPostill

Також синтаксис. Я вважаю, що це використовується як заміна команди приблизно так: rsync -aAVx $(ssh-copy-id -i /home/myusername/.ssh/id_rsa.pub)тоді все excludesта --deleteінше я ще не працював, але це найближче, що я бачив. Нібито, ви повинні це зробити, навіть якщо вже можете sshі scpна цільовому сервері, і демон rsync повинен бути запущений, оскільки він не використовує звичайний формат sftp. Я все ще шукаю.
SDsolar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.