Rsync с ssh и корнем, не работающим после изменения, размещает IP

У нас есть сервер тот резервные серверы кратных чисел. Резервный сервер расположен в офисе и всем другом сервере в облаке.

Мы переместили весь сервер в новый 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 в новом облаке?. Как я мог проверить его? мы имеем, уже проверяют порты. Спасибо за все.

2
задан 22 October 2015 в 22:48
3 ответа

Мы обнаружили проблему! Делаем Rsync с ssh и root. Кажется, что .bachrc на хост-сервере имеет эхо, и это вызывало сбои (после миграции сервера на новый сервер с новой установкой ОС):

rsync: сервер отправлен «**************** это эхо **********************», а не приветствие

Ошибка rsync: ошибка запуска клиент-серверного протокола (код 5) в main.c (1534) [Receiver = 3.0.9]

rsync не распознает это эхо, поэтому он не прошел. Чтобы исправить это, нам пришлось удалить это эхо, и синхронизация прошла хорошо.

Спасибо всем, кто прокомментировал!.

0
ответ дан 3 December 2019 в 11:35

Обычный способ сделать это

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
     
    • вы используете и dsa, и rsa? или это опечатка?
    • Если id_rsa - ваш ключ по умолчанию, указывать его не нужно.
    • как сказано, -i флаг из ssh требует закрытого ключа, а не .pub , доступного для всех.
1
ответ дан 3 December 2019 в 11:35

Я думаю, что в вашей команде 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 .

1
ответ дан 3 December 2019 в 11:35

Теги

Похожие вопросы