Borgbackup
如何以 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
也沒有 repokey。現在一個明顯的解決方法是提供 root ssh 訪問權限和 repo 密鑰,但我想知道是否有更好的解決方案。
如果您通過 sudo 以 root 身份執行 borg,那麼您使用的不是來自使用者而是來自 root 的生成密鑰。root 尚未配置為使用使用者的私鑰(儘管它可以訪問)。
您應該通過創建一個新的 ssh 密鑰(使用
sudo ssh-keygen
)來解決這個問題,並在遠端端也接受這個(使用sudo ssh-copy-id me@remote
並輸入密碼)。另一個(但不太好)的解決方案是使用使用者的 ssh-key,即使以 root 身份執行命令:
export BORG_RSH='ssh -i ~/.ssh/id_rsa' && sudo borg create ssh://me@remote:/backup/my_repo.bor::demo /etc
-但是……不要;)