Как настроить Rsync без пароля с SSH в UNIX / Linux?


9

Как я могу установить rsync между двумя хостами без ввода пароля?

linux  ssh  rsync 

Это должно быть очень полезно: blogs.oracle.com/jkini/entry/how_to_scp_scp_and
Tom

Maverick143 дал ответ, но этот вопрос на самом деле не относится к StackOverflow, поскольку он имеет мало общего с программированием. SuperUser.com был бы более актуальным.
Martin

Ответы:


16

Ниже статья из 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

Введите фразу-пароль (пусто, без пароля):

Введите тот же пароль еще раз: Примечание: когда он просит вас ввести   парольную фразу просто нажмите клавишу ввода, и не вводите пароль здесь.

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

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

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

Примечание: выше будет спрашивать пароль для вашей учетной записи на удаленном   и скопируйте открытый ключ автоматически в соответствующий   место нахождения. Если ssh-copy-id не работает для вас, используйте метод, который мы   обсуждалось ранее, чтобы настроить пароль SSH минус логин.

4. Выполните rsync через ssh без пароля

Теперь вы должны быть в состоянии подключиться к удаленному хосту без входа в   пароль.

ssh 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

2
Очистить копию и вставить из thegeekstuff.com/2011/07/rsync-over-ssh-without-password Вы должны ссылаться на оригинального автора.
Lawrence Cherone

Если вам нужно использовать другого пользователя, вы можете сделать это при выполнении ssh-copy-id: ssh-copy-id -i ~ / .ssh / id_rsa.pub user@192.168.200.10
Finni McFinger

1

Генерация открытого ключа на сервере

$ 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 или / media, который вы создали или на устройстве, которое вы     крепление. не важно какой) 2) Передача файлов с помощью scp, как показано ниже. FileZilla тоже будет работать.

Все это (кроме FileZilla) может работать в cron без пароля.


Эта настройка работает очень хорошо. Единственный раз, когда вам нужен пароль, - это когда вы устанавливаете начальный 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 (или / media) и используете его.

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

Вот скрипт резервного копирования:

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

Вуаля! Это займет некоторое время, но потом это будет сделано.

Оба скрипта могут нормально работать в cron.


Альтернативой является использование 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.