rootでしか読めない一部のファイルを、自分だけがアクセスできるリモートリポジトリにバックアップしたいと思います。borg
私の/etc
ソースコードで実行すると、特定のpermission-denied
ファイルを読み取ろうとします(たとえば/etc/crypttab
、borg
rootで実行するとファイルを読み取ることができますが、ローカルユーザーがリモートストレージSSHアクセスにアクセスできないsudo
ため、ストアに書き込むことはできません)。root
、リポジトリのストレージキーがありません(つまり/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
ルートにはストレージへのアクセス権や権限がないため、失敗します。
今確かな解決策は、ルートSSHアクセス権とストレージキーを付与することですが、より良い解決策があるかどうか疑問に思います。
ベストアンサー1
sudoを介して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
- しかし...しないでください;)