rsnapshot 远程服务器 - 权限最佳实践

rsnapshot 远程服务器 - 权限最佳实践

我正在尝试为远程服务器设置基于 ssh 密钥的登录,以便每天进行 rsnapshot。我使用的密钥是普通用户密钥,但它显然没有 root 访问权限,因此当 rsnapshot 使用用户密钥连接到服务器时,例如 /root 将不会被备份。以最简单的方式设置 rsnapshot 的最佳方法是什么?我应该创建一个普通的备份用户,并将其添加到wheel组并完成它吗?

答案1

一种可能不那么简单的方法是连接为,root但限制用于连接的密钥仅运行rsync;的特定调用。这需要一个/root/.ssh/authorized_keys类似于以下内容的条目

 from="192.0.2.*",command="/root/limit-rsnap" ssh-rsa AAAAB3N...

这限制了备份的预期来源(这可能并不适合所有设置),更重要的是在连接到仅允许/root/limit-rsnap特定调用的系统上的脚本中:rsync

#!/bin/bash

shopt -s extglob

test -n "$SSH_ORIGINAL_COMMAND" || exit 1

case "$SSH_ORIGINAL_COMMAND" in
  'rsync --server --sender -'+([vnlHogDtprRxe.isfLS])' --numeric-ids . '*)
    RSYNCPATH="${SSH_ORIGINAL_COMMAND#rsync --server --sender -+([vnlHogDtprRxe.isfLS]) --numeric-ids . }"
    test -e "$RSYNCPATH" && exec $SSH_ORIGINAL_COMMAND || exit 1
    ;;
  *)
    exit 1
  ;;
esac

相关内容