매일 RSnapshot을 찍을 수 있도록 원격 서버에 SSH 키 기반 로그인을 설정하려고 합니다. 내가 사용하고 있는 키는 일반 사용자 키이지만 분명히 루트 액세스 권한이 없으므로 rsnapshot이 사용자 키를 사용하여 서버에 연결하면 예를 들어 /root는 백업되지 않습니다. 가장 간단한 방법으로 RSnapshot을 설정하는 가장 좋은 방법은 무엇입니까? 일반 백업 사용자를 생성하여 휠 그룹에 추가하고 끝내야 합니까?
답변1
덜 간단한 접근 방법은 연결하는 root
데 사용되는 키를 실행으로만 제한하는 것입니다 rsync
. 이를 위해서는 /root/.ssh/authorized_keys
다음과 유사한 항목이 필요합니다.
from="192.0.2.*",command="/root/limit-rsnap" ssh-rsa AAAAB3N...
이는 의도된 백업 소스(모든 설정에 적합하지 않을 수 있음)를 제한하며, 더 중요한 것은 /root/limit-rsnap
특정 호출만 허용하는 시스템에 연결된 스크립트에서 다음과 같습니다.rsync
#!/bin/bash
shopt -s extglob
test -n "$SSH_ORIGINAL_COMMAND" || exit 1
case "$SSH_ORIGINAL_COMMAND" in
'rsync --server --sender -'+([vnlHogDtprRxe.isfLS])' --numeric-ids . '*)
RSYNCPATH="${SSH_ORIGINAL_COMMAND#rsync --server --sender -+([vnlHogDtprRxe.isfLS]) --numeric-ids . }"
test -e "$RSYNCPATH" && exec $SSH_ORIGINAL_COMMAND || exit 1
;;
*)
exit 1
;;
esac