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

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

24
задан Kamil Maciorowski
29.12.2022 11:46 Количество просмотров материала 3353
Распечатать страницу

4 ответа

ниже-статьи Выродок Вещи:

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

сделать rsync, чтобы убедиться, что он запрашивает пароль для вашей учетной записи на удаленный сервер и успешно копирует файлы на удаленный сервер сервер.

следующий пример будет синхронизировать локальную папку /home/test в удаленную папку /backup/test (on 192.168.200.10 server).

это должно запросит пароль вашей учетной записи на удаленном сервер.

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

2. по ssh-keygen генерирует ключи.

теперь setup ssh так что он не запрашивает пароль при выполнении тссс. Используйте ssh-keygen на локальном сервере для создания публичных и частных ключи.

$ ssh-keygen

введите пароль (пусто для пароля):

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

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 для удаленного хоста без ввода пароль.

ssh 192.168.200.10

выполнить rsync снова, он не должен просить вас ввести пароль этот раз.

rsync -avz -e ssh /home/test/ user@192.168.200.10:/backup/test/
15
отвечен MangeshBiradar 2022-12-30 19:34

Genarate открытый ключ в 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.паб, скопируйте содержимое
  • войдите в ServerB, используя того же пользователя в команде rsync
  • в ServerB добавьте содержимое к ~/.ssh/authorized_keys. Создайте файл, если он не существует. Убедитесь, что режим файла 700.
1
отвечен Johny 2022-12-30 21:51

все эти предложения 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 на целевом 1TB HDD, поэтому передаются только соответствующие файлы.

только после завершения переноса удалить старую версию.

вуаля. Успех.

0
отвечен SDsolar 2022-12-31 00:08

выбрать пользователя в адресе будет лучше

ssh-copy-id -i ~/.ssh/id_rsa.pub <user_in_server>@192.168.1.100
-1
отвечен DreamAndDead 2022-12-31 02:25

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх