루트로만 읽을 수 있는 일부 파일을 내 사용자만 액세스할 수 있는 원격 저장소에 백업하고 싶습니다. borg
내 /etc
소스 코드 로 실행 하면 permission-denied
특정 파일을 읽으려고 합니다(예 /etc/crypttab
: borg
루트로 실행 하면 파일을 읽을 수 있지만 로컬 사용자가 원격 저장소 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를 루트로 실행하면 사용자가 생성한 키가 아니라 루트에서 생성된 키를 사용하게 됩니다. 루트는 사용자의 개인 키를 사용하도록 구성되지 않았습니다(액세스 권한은 있지만).
새 SSH 키를 생성하고( 를 사용하여 sudo ssh-keygen
) 원격 측에서도 해당 키를 수락( sudo ssh-copy-id me@remote
비밀번호를 사용 및 입력)하여 이 문제를 해결해야 합니다.
또 다른 (그러나 그리 좋지는 않은) 해결책은 루트로 명령을 실행할 때에도 사용자의 SSH 키를 사용하는 것입니다: export BORG_RSH='ssh -i ~/.ssh/id_rsa' && sudo borg create ssh://me@remote:/backup/my_repo.bor::demo /etc
— 하지만... 하지 마세요;)