У нас есть сервер тот резервные серверы кратных чисел. Резервный сервер расположен в офисе и всем другом сервере в облаке.
Мы переместили весь сервер в новый IP, и с этого момента остановленные резервные копии.. В хостах мы авторизовали новый IP в rsync.conf (хосты позволяют = новый IP), и также в ~/.ssh/nano authorized_keys изменение от подобного: от = "новый IP", ssh-rsa....... root@backup).
Но это не работало, таким образом, мы генерировали новую пару ключей без пароля.
ssh-keygen
И мы скопировали в хост:
ssh-copy-id -i /root/.ssh/id_dsa.pub user@remote.host.com
Мы используем объединенный rsync с ssh и корнем, таким образом
rsync -az "ssh -i /root/.ssh/id_dsa.pub" root@remote.host. folder1
folder2
но в этом случае у нас есть эта ошибка:
ОШИБКА: удаленный путь должен запустить с имени модуля rsync ошибку: ошибка, начинающая протокол клиент-сервер (кодируют 5) в main.c (1534) [Receiver=3.0.9] remotehost: ~/.ssh# rsync ошибка: полученный SIGUSR1 (кодируют 19) в main.c (1316) [Receiver=3.0.9]
И в хост-сервере у нас есть этот журнал:
20 октября 13:35:44 remotehost sshd [21863]: pam_unix (sshd:auth): ошибка аутентификации; logname = uid=0 euid=0 tty=ssh ruser = rhost=new_IP user=root 20 октября 13:35:46 remotehost sshd [21863]: Неудавшийся пароль для корня от порта New_IP 56 355 ssh2
В хосте работает rsync услуга.
Мы попробовали несколько методов и следовали нескольким руководствам.
Кто-то может помочь мне?,
Заранее спасибо!!
Update1:
Это - мой rsyncd.conf в обоих узлах; В сервере резервного копирования:
hosts allow = allow IP'S
hosts deny = *
[Remote_Server1]
path= /var/backups/server1
comment = Server1
uid = root
gid = root
[Remote_Server2]
path= /var/backups/server2
comment = Server2
uid = root
gid = root
В удаленном сервере:
hosts allow = backup server public IP
hosts deny = *
max connections = 48
syslog facility = daemon
[root-server1]
path = /
comment = root directory of my server1
uid = root
gid = root
[etc-server1]
path = /etc
comment = Directory of my server1
uid = root
gid = root
[home-server1]
path = /home
comment = home of my server
uid = root
gid = root
Update2:
У меня есть ssh, настроил этот путь:
в/etc/ssh/sshd_config файле
PermitRootLogin forced-commands-only
DSAAuthentication yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
И кроме того, в/root/.ssh/authorized_keys файле на удаленном сервере я имею (я сделал его с этим ручным http://troy.jdmz.net/rsync/index.html):
from="My IP",command="/home/remoteuser/cron/validate-rsync"/ ssh-dss ADCD...1234......kEY root@backupserver
где проверить-rsync файл:
#!/bin/sh
case "$SSH_ORIGINAL_COMMAND" in
*\&*)
echo "Rejected"
;;
*\(*)
echo "Rejected"
;;
*\{*)
echo "Rejected"
;;
*\;*)
echo "Rejected"
;;
*\<*)
echo "Rejected"
;;
*\`*)
echo "Rejected"
;;
*\|*)
echo "Rejected"
;;
rsync\ --server*)
$SSH_ORIGINAL_COMMAND
;;
*)
echo "Rejected"
;;
esac
С этой конфигурацией я выполняю команду:
rsync -azvvv -e "ssh -i /root/.ssh/rsync.key" root@remoteserver1::home-server1/ /home/local/
В случае я получаю эту ошибку:
сочинение использования соединения: ssh-i/root/.ssh/rsync.key-l корневой remoteserver1 rsync - сервер - демон. rsync: сервер, отправленный "**************************************************************************" вместо того, чтобы приветствовать rsync ошибку: ошибка, начинающая протокол клиент-сервер (кодируют 5) в main.c (1534) [Receiver=3.0.9] [Получатель] _exit_cleanup (code=5, file=main.c, line=1534): собираясь выход вызова (5)
И в журналах у меня есть это:
sshd[10408]: Корневой вход в систему принят для принудительной команды. sshd[10408]: Принятый открытый ключ для корня от порта XXX.XXX.XXX 60 543 ssh2 sshd[10408]: pam_unix (sshd:session): сессия, открытая для пользователя, базируется (uid=0) sshd[10408]: pam_unix (sshd:session): сеанс закрыт для пользовательского корня
Update3:
Проблема запустилась, так как мы переместили серверы в другое Облако. На самом деле все существующие конфигурации, объясненные в этом сообщении, работают в старом облаке. Это может быть некоторое приложение вышестоящего уровня, блокирующее rsync в новом облаке?. Как я мог проверить его? мы имеем, уже проверяют порты. Спасибо за все.
Мы обнаружили проблему! Делаем Rsync с ssh и root. Кажется, что .bachrc на хост-сервере имеет эхо, и это вызывало сбои (после миграции сервера на новый сервер с новой установкой ОС):
rsync: сервер отправлен «**************** это эхо **********************», а не приветствие
Ошибка rsync: ошибка запуска клиент-серверного протокола (код 5) в main.c (1534) [Receiver = 3.0.9]
rsync не распознает это эхо, поэтому он не прошел. Чтобы исправить это, нам пришлось удалить это эхо, и синхронизация прошла хорошо.
Спасибо всем, кто прокомментировал!.
Обычный способ сделать это
ssh-copy-id root@remote.host.com
rsync root@remote.host.com folder1 folder2
rsync (скрытую) папку1 папку2
для синхронизации с / data
У меня проблема
И мы скопировали на хост:
ssh-copy-id -i / root /.ssh/id_dsa.pub (скрыто)
Мы используем комбинированный rsync с ssh и root, таким образом
rsync -az "ssh -i /root/.ssh/id_rsa.pub" (скрытый) folder1 folder2
id_rsa
- ваш ключ по умолчанию, указывать его не нужно. -i
флаг из ssh
требует закрытого ключа, а не .pub
, доступного для всех. Я думаю, что в вашей команде rsync вы должны передать закрытый ключ, а не открытый.
Вы пробовали подключиться по ssh с помощью команды
ssh -i /root/.ssh/id_rsa.pub
Я полагаю, это не должно работать.
Изменить:
Учитывая rsyncd.conf, я дам вам conf, если вы хотите отправить свои файлы на backup_server с ваших удаленных_серверов (вы также можете захотеть вытащить файлы с удаленного_сервера на резервном сервере).
Я предполагаю, что у вас есть работающее ssh-соединение между удаленным_сервером2 и резервным_сервером (следующая команда должна соединить вас с резервным_сервером).
root@remote_server2 $ ssh root@backup_server
с сервера, который вы хотите сделать резервную копию, я полагаю server1 из вашего файла.
root@remote_server2 $ rsync -az /what/you/want/to/backup/ root@backup-server::Remote_Server2/
Вам также необходимо изменить ваш rsyncd.conf на сервере резервного копирования на
hosts allow = allow IP'S
hosts deny = *
[Remote_Server1]
path= /var/backups/server1
comment = Server1
uid = root
gid = root
read only = false
[Remote_Server2]
path= /var/backups/server2
comment = Server2
uid = root
gid = root
read only = false
. Вы должны адаптировать то же самое, чтобы он работал для remote_server1 .