我正在尝试使用 borg 备份,但遇到了 SSH 问题。我正在备份一些根文件,例如 /var/www/html,因此我需要 root 权限,因此我需要以 root 身份运行备份脚本,但是当我以 root 身份运行它时,SSH 密钥似乎不起作用,因为它是一个我想用 cron 运行的脚本,这意味着我不能每次都输入密码。请注意,当我从用户运行脚本时,SSH 密钥可以工作,但备份无法工作,因为某些文件位置的权限被拒绝。
我正在与 Hetzner 一起备份到一个存储箱。
我的脚本:
#!/usr/bin/env bash
LOG="/var/log/borg/backup.log"
BACKUP_USER="XXXXXXX"
REPOSITORY_DIR="backups/Node1"
REPOSITORY="ssh://${BACKUP_USER}@${BACKUP_USER}.your-storagebox.de:23/./${REPOSITORY_DIR}"
exec > >(tee -i ${LOG})
exec 2>&1
echo "###### Backup started: $(date) ######"
echo "Transfer files ..."
BORG_PASSPHRASE='XXXXXXXXXX' borg create -v --stats \
$REPOSITORY::'{now:%Y-%m-%d_%H:%M}' \
/root \
/etc \
/var/www \
/home \
--exclude /dev \
--exclude /proc \
--exclude /sys \
--exclude /var/run \
--exclude /run \
--exclude /lost+found \
--exclude /mnt \
--exclude /var/lib/lxcfs
echo "###### Backup ended: $(date) ######"
答案1
我刚刚将 SSH 私钥复制到 root 用户,现在它可以工作了。
cp /home/user/.ssh/rsa_pub /root/.ssh/rsa_pub