Как настроить rsync между двумя хостами без указания пароля?
Как настроить Rsync без пароля с SSH на UNIX / Linux?
4 ответа
ниже-статьи Выродок Вещи:
1. Тест rsync по ssh (с паролем):
сделать rsync, чтобы убедиться, что он запрашивает пароль для вашей учетной записи на удаленный сервер и успешно копирует файлы на удаленный сервер сервер.
следующий пример будет синхронизировать локальную папку
/home/test
в удаленную папку/backup/test
(on192.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/
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.
все эти предложения 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, поэтому передаются только соответствующие файлы.
только после завершения переноса удалить старую версию.
вуаля. Успех.
выбрать пользователя в адресе будет лучше
ssh-copy-id -i ~/.ssh/id_rsa.pub <user_in_server>@192.168.1.100
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]