我想备份一些只能作为根文件读取到只有我的用户有权访问的远程存储库的文件。如果我自己运行borg,使用/etc作为我的源代码,那么当我试图读取一些像/etc/crypttab这样的文件时,就会得到permission-denied错误。如果我以根用户的身份使用borg运行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将失败,因为根既没有对ssh://me@remote的访问,也没有对repokey的访问。
现在,一个显而易见的工作是给予root ssh访问权和回购密钥,但我想知道是否有更好的解决方案。
发布于 2020-12-06 03:00:41
如果您通过sudo将borg作为root运行,则不是使用用户生成的密钥,而是使用root。root没有配置为使用用户的私钥(尽管它可以访问)。
您应该通过创建一个新的ssh键(使用sudo ssh-keygen)来解决这个问题,并在远程端接受这个键(使用sudo ssh-copy-id me@remote并键入密码)。
另一个(但不太好)的解决方案是使用用户的ssh键,即使在将命令作为root运行时:export BORG_RSH='ssh -i ~/.ssh/id_rsa' && sudo borg create ssh://me@remote:/backup/my_repo.bor::demo /etc-but…。(不要;)
https://unix.stackexchange.com/questions/623117
复制相似问题