我们有一台备份多台服务器的服务器。 备份服务器位于办公室,云中的所有其他服务器。
我们已经把所有的服务器都转移到一个新的IP上了,从这个时候起,备份就停止了。 。 在我们已经在rsync.conf(hosts allow = new IP)中授权新主机的主机上,以及在〜/ .ssh / nano authorized_keys中更改如:from =“new Ip”,ssh-rsa …. … root @ backup)。
但是它没有工作,所以我们生成了没有密码的新密钥对。
ssh-keygen
我们已经复制到主机:
ssh-copy-id -i /root/.ssh/id_dsa.pub [email protected]
因此,我们使用ssh和root组合的rsync
rsync -az "ssh -i /root/.ssh/id_dsa.pub" [email protected]. folder1 folder2
但在这种情况下,我们有这个错误:
错误:远程path必须以模块名称rsync错误启动:在main.c(1534)[Receiver = 3.0.9]远程主机:〜/ .ssh#rsync错误:启动客户端服务器协议(代码5)时收到SIGUSR1 (代码19)在main.c(1316)[Receiver = 3.0.9]
而在主机服务器,我们有这个日志:
10月20日13:35:44 remotehost sshd [21863]:pam_unix(sshd:auth):authentication失败; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = new_IP user = root 10月20日13:35:46 remotehost sshd [21863]:New_IP端口的root密码失败56355 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:
我有这样configurationssh:
在/ 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
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
有了这个configuration,我运行命令:
rsync -azvvv -e "ssh -i /root/.ssh/rsync.key" root@remoteserver1::home-server1/ /home/local/
在这种情况下,我得到这个错误:
使用以下命令连接连接:ssh -i /root/.ssh/rsync.key -l root remoteserver1 rsync –server –daemon。 rsync:服务器发送“********************************************* *****************************“而不是问候rsync错误:错误启动客户端 – 服务器协议(代码5)在main.c (1534)[Receiver = 3.0.9] [Receiver] _exit_cleanup(code = 5,file = main.c,line = 1534):即将调用exit(5)
在日志中我有这个:
sshd [10408]:强制命令的根login被接受。 sshd [10408]:接受来自XXX.XXX.XXX端口的根的publickey 60543 ssh2 sshd [10408]:pam_unix(sshd:session):通过(uid = 0)为用户根打开的会话sshd [10408]:pam_unix(sshd:会话):closures用户root的会话
UPDATE3:
自从我们将服务器移到其他云端后,问题就开始了。 实际上,在这篇文章中解释的所有现有的configuration在旧的云中工作。 它可以是一些上层应用程序阻止新的云中的rsync? 我怎么检查它? 我们已经检查了端口。 感谢所有。
通常的做法是
ssh-copy-id [email protected]
下一步;
rsync [email protected] folder1 folder2
rsync [email protected]:/data folder1 folder2与/data同步 我有麻烦了
我们已经复制到主机:
ssh-copy-id -i /root/.ssh/id_dsa.pub [email protected]因此,我们使用ssh和root组合的rsync
rsync -az "ssh -i /root/.ssh/id_rsa.pub" [email protected] folder1 folder2
id_rsa是您的默认密钥,则不需要指定它。 ssh -i标志需要私钥,而不是每个人都可以使用的.pub 。 我猜你的rsync命令你应该通过私钥而不是公共密钥。 你有没有尝试使用ssh -i /root/.ssh/id_rsa.pub命令在ssh中连接,我想这不应该起作用。
编辑:
给定rsyncd.conf,如果你想把你的文件从你的remote_servers(你也可以从备份服务器上的remote_server中提取文件)推送到backup_server,我会给你conf。
我假设你在remote_server2和backup_server之间有一个可用的ssh连接(以下命令应该将你连接到backup_server)。
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工作。
我们发现了这个问题! 我们用ssh和root制作Rsync。 看起来,主机服务器中的.bachrc有一个回显,这就是发生故障的原因(服务器迁移到安装新操作系统的新服务器之后):
rsync:服务器发送“****************这是回声**********************”而不是欢迎
rsync错误:错误启动客户端服务器协议(代码5)在main.c(1534)[Receiver = 3.0.9]
rsync不理解这个回声,所以失败了。 要解决这个问题,我们必须删除这个回声,并且同步运行良好。
感谢所有的评论!