我正在尝试设置备份服务器.
我想将每个用户(客户端)chroot到其主目录,并且只允许它使用sftp和rsync.
我想将每个用户(客户端)chroot到其主目录,并且只允许它使用sftp和rsync.
我很快发现我不是唯一一个尝试这样做的人,我找到了this guide然后跟着它.所以现在我只有了sftp的chroot用户.
然后我发现rsync需要ssh在另一台机器上产生自己,而sftp还不够.为每个用户提供ssh登录是我想要首先避免的.
谁能想到一些可能的解决方案?
谢谢,
解决方法
一个sftp解决方案还需要为每个人提供ssh登录,所以你在这里并没有真正丢失任何东西.授予ssh访问权限并不一定意味着完全shell访问,例如,this显示了如何使用ssh authorized_keys文件允许通过rsync进行备份,同时将可用命令限制为仅仅rsync接收器.
实际上,如果您选择基于密钥的身份验证,而不是密码身份验证(您应该这样做),则可以在一个用户帐户下运行所有内容而不需要多个帐户.您可以使用密钥来标识远程用户,并将rsync接收器指向特定目录.
你的authorized_keys文件中有这样的东西:
command="/usr/bin/rsync --server -a . /tmp/user1" ssh-rsa ... user1 command="/usr/bin/rsync --server -a . /tmp/user2" ssh-rsa ... user2
使用user1私钥的人将备份到/ tmp / user1,使用user2私钥的人将备份到/ tmp / user2.等等…