如何以 root 身份使用远程 borg 备份?

如何以 root 身份使用远程 borg 备份?

我想将一些只能以 root 身份读取的文件备份到只有我的用户有权访问的远程存储库。如果我borg使用自己/etc的源代码运行,则permission-denied在尝试读取某些文件(例如/etc/crypttab.如果我borg以 root 身份运行sudo,则可以读取文件,但无法写入存储库,因为我的本地root用户没有对远程存储库的 ssh 访问权限,并且没有该存储库的存储库密钥(即/root/.borg/没有不存在)。

回顾一下:

$ borg create ssh://me@remote:/backup/my_repo.borg::demo /etc

会出错,因为我无法读取 中的某些文件/etc,我想要备份。和

$ sudo borg create ssh://me@remote:/backup/my_repo.borg::demo /etc

将会失败,因为 root 既无权访问ssh://me@remote也无权存储库。

现在,一个明显的解决方法是授予 root ssh 访问权限和存储库密钥,但我想知道是否有更好的解决方案。

答案1

如果您通过 sudo 以 root 身份运行 borg,则您使用的不是从用户生成的密钥,而是从 root 生成的密钥。 root 尚未配置为使用用户的私钥(尽管它有权访问)。

您应该通过创建一个新的 ssh 密钥(使用sudo ssh-keygen)来解决此问题,并在远程端也接受该密钥(使用sudo ssh-copy-id me@remote并输入密码)。

另一个(但不太好的)解决方案是即使在以 root 身份运行命令时也使用用户的 ssh 密钥:export BORG_RSH='ssh -i ~/.ssh/id_rsa' && sudo borg create ssh://me@remote:/backup/my_repo.bor::demo /etc—但是……不要;)

相关内容