尝试将RSYNC与守护程序和SSH连接一起使用时遇到问题。

我不想要做的就是简单地登录rsync而不会使用rsync守护进程。

这是我的配置文件(/etc/rsyncd.conf):

uid = rsync
gid = rsync

[yxz]
    path = /home/pierre/xyz
    read only = false
    auth users = rsync
    hosts allow = <myIP>

/ home / pierre / xyz已使rsync用户可以访问。

这正在工作(但未使用守护程序):
rsync -rzP --stats --ignore-existing --remove-sent-files [email protected]:/home/pierre/xyz/ /media/xyz --include="*.cfg" --exclude="*"

这不起作用(使用守护程序),但rsync要求我通过,然后说“@ERROR:模块xyz上的身份验证失败”,因为我没有以这种方式配置身份验证:
rsync -rzP --stats --ignore-existing --remove-sent-files rsync://[email protected]/xyz/ /media/xyz --include="*.cfg" --exclude="*"

这不起作用(使用守护程序):
rsync -rzP -e "ssh -l rsync" --stats --ignore-existing --remove-sent-files rsync://[email protected]/xyz/ /media/xyz --include="*.cfg" --exclude="*"

这是错误消息:



使用ssh命令的-v选项,它表示允许连接,因此我认为rsync是问题,而不是ssh。

有想法吗?

谢谢你的帮助 :)

最佳答案

  • 确保停止并禁用rsync系统服务。例如。如果您使用的是systemd:systemctl disable --now rsync
  • 从rsync命令中删除-l rsyncrsync -rzP -e "ssh" --stats --ignore-existing --remove-sent-files rsync://mydomain.fr/xyz/ /media/xyz --include="*.cfg" --exclude="*"
  • auth users = rsync删除rsyncd.conf
  • 我发现,如果我不使用root,则还必须在use chroot = no中添加rsyncd.conf



  • 对于ssh命令,该连接照常进行身份验证(特别是与ssh mydomain.fr相同)。

    这不涉及系统服务rsync。相反,它使用SSH来启动rsync --server --daemon .实例并与之通信。如果将-e "ssh"替换为-e "ssh -v",则可以看到此命令正在启动。

    使用系统服务rsync的问题在于它不加密网络连接,因此网络能够截取和修改传输中的数据。这在某种程度上破坏了使用任何身份验证的意义。

    通常,此方法与专用SSH密钥一起使用,在command=""中使用authorized_keys选项将其限制为仅rsync。这样做的附带好处是它会覆盖rsync尝试使用的命令,因此您可以强制其使用--config=~/rsyncd.conf而不是创建全局/etc/rsyncd.conf。 IMO这对于避免IMO混乱很有用。这是一个好习惯,因为如果您创建全局配置文件,则可能会意外运行不安全的系统服务。例如,Debian 9默认启用rsync系统服务,如果创建了/etc/rsyncd.conf,它将在启动时自动启动。
  • https://gist.github.com/trendels/6582e95012f6c7fc6542
  • https://indico.cern.ch/event/577279/contributions/2354037/attachments/1366772/2071442/Hepsysman-keeping-in-sync.pdf
  • https://serverfault.com/questions/6367/cant-get-rsync-to-work-in-daemon-over-ssh-mode
  • 使用具有自定义 shell 的专用用户而不是command="" / ForceCommand的异常变体,出于某种原因:http://mennucc1.debian.net/howto-ssh-rsyncd.html
  • 关于ssh - 无法通过SSH连接使用RSYNC守护程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22726183/

    10-16 23:55