我有一个 .sh 文件,可以手动触发它来运行本地网络上远程服务器的备份。它看起来像这样:
rsync -avzP -e ssh -i /mnt/local/ [email protected]:/DataVolume/shares/NASBackup
这需要授权,这就是我创建公钥的原因,我将其存储在 /mnt/local/.backup/authorized_keys.pub
然后我创建了一个新的 .sh 脚本,其中包含以下内容
rsync -avzP 'ssh -i /mnt/local/.backup/authorized_keys -o StrictHostKeyChecking=no' /mnt/local 192.168.9.114:/DataVolume/shares/NASBackup
它抛出了权限被拒绝的错误。具体如下:
rsync: change_dir "/mnt/local/.backup//ssh -i /mnt/local/.backup" failed: No such file or directory (2)
sent 12 bytes received 12 bytes 48.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1053) [sender=3.0.9]
./backup-start-new.sh: /mnt/local: Permission denied
我尝试在本地计算机上运行 rsync 的原因在于我的授权密钥文件夹不可写,因此我将密钥放在了其他地方。在远程服务器上,.pub 密钥位于 ~/.ssh/authorized_keys 中
错误的主要问题是 /mnt/local 文件夹的权限被拒绝,我无法弄清楚。原始服务器是 FreeNAS 服务器。
答案1
~/.ssh/authorized_keys
权限是否设置为0600
和?~/.ssh
0700
SSH 对于文件权限非常挑剔。