3
带有chroot的SFTP取决于连接用户的公钥
我想构建一个服务器(运行Debian或FreeBSD),该服务器通过sshfs从不同的客户端接收备份。每个客户端都应该能够读取和写入自己的备份数据,但不能读取其他任何客户端的数据。 我有以下想法:每个客户端都通过公用密钥auth连接到backup@backupserver.local。用户备份具有一个特殊的authorized_keys文件,如下所示: command="internal-sftp" chroot="/backup/client-1/data" ssh-rsa (key1) command="internal-sftp" chroot="/backup/client-2/data" ssh-rsa (key2) command="internal-sftp" chroot="/backup/client-3/data" ssh-rsa (key3) etc... 这样做的好处是,我不需要为每个客户端使用单独的用户,并且可以轻松地使用脚本自动生成authorized_keys文件。 只有一个问题:chroot=...不能正常工作。OpenSSH的authorized_keys文件似乎没有与ChrootDirectory等效的文件(可在/ etc / ssh / sshd_config中全局或在“匹配用户”块中使用)。 有没有使用OpenSSH完成我想要的工作的合理简单方法?也许command=...以一种聪明的方式使用指令?另外,还有其他SFTP服务器可以执行我想要的操作吗? 编辑:为了更清楚我要实现的目的:我希望多个客户端能够在我的服务器上存储文件。每个客户端都不能看到其他任何客户端的文件。而且我不想在服务器上堆满几十个用户帐户,因此我想为客户提供一个易于管理的解决方案,使客户端共享一个用户帐户,但仍然无法访问彼此的文件。