通过 SSH 进行 Rsync 不起作用

通过 SSH 进行 Rsync 不起作用

我想通过 SSH 使用 Rsync 将 Synology DiskStation(DSM 6.0.2-8451 Update 9)备份到 CentOS6 服务器。

CentOS6服务器配置

/etc/rsyncd.conf

uid = root
gid = root
max connections = 10
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
auth users = synology
secrets file = /etc/rsyncd.secrets
max verbosity = 2
transfer logging = yes

[synology1]
path = /mnt/disk/synology/
hosts allow = xxx.xxx.xxx.xxx (Synology server's IP)
list = true
read only = no

/etc/xinetd.d/rsync

service rsync
{
    disable = no
    flags           = IPv6
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/bin/rsync
    server_args     = --daemon
    log_on_failure  += USERID
}

系统用户我的系统上也存在名为“synology”的用户,其密码与 /etc/rsyncd.secrets 中提供的 rsync 用户“synology”相同。

我从 Synology 服务器尝试此操作:

rsync -av /tmp/try/ [email protected]::synology1 -e 'ssh -v'

并得到:

OpenSSH_6.8p1-hpn14v6,OpenSSL 1.0.2j-fips 2016 年 9 月 26 日
debug1:连接到 xxx.xxx.xxx.xxx [xxx.xxx.xxx.xxx] 端口 xxxxx。debug1
:已建立连接。
debug1:key_load_public:没有此文件或目录
debug1:身份文件 /var/services/homes/admin/.ssh/id_rsa 类型 -1
debug1:key_load_public:没有此文件或目录
debug1:身份文件 /var/services/homes/admin/.ssh/id_rsa-cert 类型 -1
debug1:key_load_public:没有此文件或目录
debug1:身份文件 /var/services/homes/admin/.ssh/id_dsa 类型 -1
debug1:key_load_public:没有此文件或目录
debug1:身份文件 /var/services/homes/admin/.ssh/id_dsa-cert 类型 -1
debug1:key_load_public:没有此文件或目录
debug1:身份文件 /var/services/homes/admin/.ssh/id_ecdsa 类型 -1
debug1:key_load_public:没有此文件或目录
debug1:身份文件 /var/services/homes/admin/.ssh/id_ecdsa-cert类型 -1
debug1:key_load_public:没有此文件或目录
debug1:身份文件 /var/services/homes/admin/.ssh/id_ed25519 类型 -1
debug1:key_load_public:没有此文件或目录
debug1:身份文件 /var/services/homes/admin/.ssh/id_ed25519-cert 类型 -1
debug1:为协议 2.0 启用兼容模式
debug1:本地版本字符串 SSH-2.0-OpenSSH_6.8p1-hpn14v6
debug1:远程协议版本 2.0,远程软件版本 OpenSSH_5.3
debug1:匹配:OpenSSH_5.3 pat OpenSSH_5* compat 0x0c000000
debug1:远程不支持 HPN
debug1:已发送 SSH2_MSG_KEXINIT
debug1:已接收 SSH2_MSG_KEXINIT
debug1:AUTH STATE IS 0
debug1:已请求 ENC.NAME是‘aes128-ctr’
debug1: kex: server->client aes128-ctr[电子邮件保护]
debug1: 请求的 ENC.NAME 是 'aes128-ctr'
debug1: kex: 客户端->服务器 aes128-ctr[电子邮件保护]
debug1:SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192)已发送
debug1:收到 SSH2_MSG_KEX_DH_GEX_GROUP
debug1:SSH2_MSG_KEX_DH_GEX_INIT 已发送
debug1:收到 SSH2_MSG_KEX_DH_GEX_REPLY
debug1:服务器主机密钥:ssh-rsa SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxx
debug1:主机“xxx.xxx.xxx.xxx”已知并与 RSA 主机密钥匹配。
debug1:在 /var/services/homes/admin/.ssh/known_hosts:1 中找到密钥
debug1:已发送 SSH2_MSG_NEWKEYS
debug1:需要 SSH2_MSG_NEWKEYS
debug1:已收到 SSH2_MSG_NEWKEYS debug1
:已发送 SSH2_MSG_SERVICE_REQUEST
debug1:已收到 SSH2_MSG_SERVICE_ACCEPT
debug1:可以继续的身份验证:publickey、gssapi-keyex、gssapi-with-mic、password
debug1:下一个身份验证方法:publickey
debug1:尝试私钥:/var/services/homes/admin/.ssh/id_rsa
debug1:尝试私钥:/var/services/homes/admin/.ssh/id_dsa
debug1:尝试私钥:/var/services/homes/admin/.ssh/id_ecdsa
debug1:尝试私钥: /var/services/homes/admin/.ssh/id_ed25519
debug1:下一个身份验证方法:密码
[电子邮件保护]的密码:
debug1:身份验证成功(密码)。
已向 xxx.xxx.xxx.xxx([xxx.xxx.xxx.xxx]:xxxxx)进行身份验证。debug1
:HPN 到非 HPN 连接
debug1:最终 hpn_buffer_size = 2097152
debug1:HPN 已禁用:0,HPN 缓冲区大小:2097152
debug1:通道 0:新 [client-session]
debug1:已启用动态窗口缩放
debug1:正在请求[电子邮件保护]
debug1:进入交互式会话。
debug1:发送命令:rsync --server --daemon 。
debug1:client_input_channel_req:channel 0 rtype exit-status reply 0
debug1:client_input_channel_req:channel 0 rtype[电子邮件保护]回复 0
debug1:通道 0:空闲:客户端会话,nchannels 1
debug1:fd 0 清除 O_NONBLOCK
debug1:fd 1 清除 O_NONBLOCK
传输:发送 2872,接收 2544 字节,用时 0.2 秒
每秒字节数:发送 14501.0,接收 12844.9
debug1:退出状态 1
rsync 错误:rsync 服务未运行(代码 43)在 io.c(687) [sender=3.0.9]

哦,经过多次尝试和数小时的模糊谷歌搜索后,我感到很困惑。我有几个问题想问!

1/ 我是否实际上必须在我的 CentOS 系统和 rsync 配置上拥有相同的帐户(用户/密码)才能通过 ssh 进行 rsync?

2/ 是什么原因导致我的“rsync 错误:rsync 服务未运行“在这里?有什么想法吗?”

谢谢你的帮助!

答案1

您可能试图将 rsync 作为守护进程的 2 个略有不同的用途结合起来。您的服务器配置将响应 rsync 端口 873 上的请求,而您的命令正在连接-e ssh并通过该连接运行rsync --server --daemon。如果您查看手册页条目,其中--config=FILE提到

默认值为 /etc/rsyncd.conf,除非守护进程通过远程 shell 程序运行,并且远程用户不是超级用户;在这种情况下,默认值为当前目录(通常为 $HOME)中的 rsyncd.conf

就您而言,您似乎正在使用用户synology,因此 rsyncd.conf 文件可能应该位于目录中~synology/

答案2

1/ 我是否实际上必须在我的 CentOS 系统和 rsync 配置上拥有相同的帐户(用户/密码)才能通过 ssh 进行 rsync?

不,当然不是。

2/ 是什么导致了我的“rsync 错误:rsync 服务未运行”?有什么想法吗?

在服务器上,没有rsync正在运行的服务。您很可能错过了这部分(根据本教程):

/etc/rc.d/init.d/xinetd start 

相关内容