Rsync com o ssh e o root não funcionando após a alteração do IP dos hosts

2

Temos um servidor que faz backup de múltiplos servidores. O servidor de backups está localizado no escritório e em todos os outros servidores na nuvem.

Nós movemos todo o servidor para um novo IP e, a partir desse momento, os backups pararam. . Nos hosts nós autorizamos o novo IP no rsync.conf (hosts allow = new IP) e também em ~ / .ssh / nano authorized_keys alterando o de like: from="novo Ip", ssh-rsa .... ... root @ backup).

Mas isso não funcionou, então geramos um novo par de chaves sem senha.

ssh-keygen

E nós copiamos para o host:

ssh-copy-id -i /root/.ssh/id_dsa.pub [email protected]

Nós usamos o rsync combinado com ssh e root, assim

rsync -az "ssh -i /root/.ssh/id_dsa.pub" [email protected]. folder1
folder2

mas, neste caso, temos este erro:

ERROR: The remote path must start with a module name rsync error: error starting client-server protocol (code 5) at main.c(1534) [Receiver=3.0.9] remotehost :~/.ssh# rsync error: received SIGUSR1 (code 19) at main.c(1316) [Receiver=3.0.9]

E no servidor host, temos este log:

Oct 20 13:35:44 remotehost sshd[21863]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=new_IP user=root Oct 20 13:35:46 remotehost sshd[21863]: Failed password for root from New_IP port 56355 ssh2

No host, o serviço rsync está em execução.

Nós tentamos vários métodos e seguimos vários manuais.

Alguém pode me ajudar?

Obrigado antecipadamente !!

Update1:

Este é o meu rsyncd.conf em ambos os nós; No servidor de backup:

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

No servidor remoto:

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:

Eu configurei o ssh dessa maneira:

no arquivo / etc / ssh / sshd_config

PermitRootLogin forced-commands-only
DSAAuthentication yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

E, além disso, no arquivo /root/.ssh/authorized_keys no servidor remoto eu tenho (eu fiz isso com este manual link ):

from="My IP",command="/home/remoteuser/cron/validate-rsync"/ ssh-dss ADCD...1234......kEY  root@backupserver

onde o arquivo validate-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

Com esta configuração, eu corro o comando:

rsync -azvvv  -e "ssh -i /root/.ssh/rsync.key" root@remoteserver1::home-server1/ /home/local/

No caso, recebo este erro:

pening connection using: ssh -i /root/.ssh/rsync.key -l root remoteserver1 rsync --server --daemon . rsync: server sent "**************************************************************************" rather than greeting rsync error: error starting client-server protocol (code 5) at main.c(1534) [Receiver=3.0.9] [Receiver] _exit_cleanup(code=5, file=main.c, line=1534): about to call exit(5)

E nos logs eu tenho isso:

sshd[10408]: Root login accepted for forced command. sshd[10408]: Accepted publickey for root from XXX.XXX.XXX port 60543 ssh2 sshd[10408]: pam_unix(sshd:session): session opened for user root by (uid=0) sshd[10408]: pam_unix(sshd:session): session closed for user root

Update3:

O problema começou desde que movemos os servidores para outra nuvem. De fato, todas as configurações existentes explicadas neste post funcionam na nuvem antiga. Pode ser algum aplicativo de nível superior bloqueando o rsync na nova nuvem? Como eu poderia verificar isso? nós já verificamos as portas. Obrigado por todos.

    
por CRMarketing 20.10.2015 / 14:13

3 respostas

0

Descobrimos o problema! Nós fazemos Rsync com ssh e root. Parece que o .bachrc no servidor host tem um eco, e isso é o que deu falhas (após a migração do servidor para um novo servidor com nova instalação do sistema operacional):

rsync: server sent "****************this is the echo**********************" rather than greeting

rsync error: error starting client-server protocol (code 5) at main.c(1534) [Receiver=3.0.9]

O rsync não entende esse eco, então ele falhou. Para consertar isso, tivemos que remover esse eco, e a sincronização funcionou bem.

Obrigado a todos que comentaram!

    
por 05.11.2015 / 21:07
1

a maneira usual de fazer é

ssh-copy-id [email protected]
  • a essa altura, você normalmente insere a senha root @ distant.

Próximo passo;

rsync  [email protected] folder1 folder2    

Eu tenho problemas

And we have copied to the host:

ssh-copy-id -i /root/.ssh/id_dsa.pub [email protected]

We use the combined rsync with ssh and root, thus

 rsync -az "ssh -i /root/.ssh/id_rsa.pub" [email protected] folder1 folder2
  • você usa tanto dsa quanto rsa? ou isso é um erro de digitação?
  • Se id_rsa for sua chave padrão, não há necessidade de especificá-la.
  • conforme informado, -i sinalizador de ssh exige uma chave privada, não .pub disponível para todos.
por 20.10.2015 / 15:21
1

Eu acho que no seu comando rsync você deve passar a chave privada não a pública. Você tentou se conectar no ssh com o comando %código% Eu acho que não deveria funcionar.

Editar:
Dado o rsyncd.conf, eu lhe darei o conf se você quiser enviar seus arquivos para o backup_server de seus remote_servers (você também pode querer extrair arquivos do remote_server no servidor de backup).

Estou supondo que você tenha uma conexão ssh de trabalho entre remote_server2 para backup_server (o seguinte comando deve conectá-lo ao backup_server).

root@remote_server2 $ ssh root@backup_server

do servidor que você deseja fazer backup, eu acho que server1 do seu arquivo.

root@remote_server2 $ rsync -az /what/you/want/to/backup/ root@backup-server::Remote_Server2/ 

Você também precisa modificar seu rsyncd.conf no servidor de backup para

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

Você tem que adaptar o mesmo para que funcione para remote_server1.

    
por 20.10.2015 / 14:57

Tags