强化rsync备份中使用的authorized_keys


  • 我正在尝试从ServerAServerB进行rootfs备份
  • 该连接是单向的,并且使用rsnapshotServerB初始化
  • 我在ServerA上创建了一个backup帐户,并仅为rsync启用了paswordless sudo

我正在努力实现的目标:

  • 更改ServerA上的authorized_keys文件,以便通过ssh只能使用rsync命令

ServerB上,/etc/rsnapshot.conf设置为使用以下参数运行rsync

  • rsync_long_args --rsync-path="sudo rsync" --delete --numeric-ids --relative --delete-excluded

我在ServerA上尝试了以下操作:

  • from="ServerB",command="sudo rsync *" ssh-ed25519 SSH-KEY

rsnapshot不断崩溃,并为rsync提供IO错误代码。

我在这里错过了什么?

!!问题解决了

发现rrsync---/usr/share/doc/rsync/scripts/rrsync,将其复制到任何位置。

  • ServerA:authorized_keys --- command="sudo /usr/local/bin/rrsync -ro /backup"

因为我在ServerA上保留了备份的副本,所以我最好从它们进行rsync,而不是在ServerB上使用rsnapshot。(这是我最初的想法,但它不起作用,因为rsnapshot创建了链接,所以存在重复的文件。我最终让rsnaphot在ServerAServerB上运行,以将备份从ServerA保存到ServerA上的localDir,并从ServerAServerB进行远程快照。(

  • 还更改了ServerA上的sudoers文件:
Defaults!/usr/local/bin/rrsync env_keep += "SSH_ORIGINAL_COMMAND"
backup ALL = (root) NOPASSWD: /usr/local/bin/rrsync
  • rsync -ax --delete --numeric-ids --relative ServerA:/ /ServerB-backup/

现在按预期工作。

请注意,上面命令中ServerA上的路径是相对于authorized_keys中设置的规则。

相关内容

最新更新