Назад | Перейти на главную страницу

Как настроить общедоступный сервер rsync и sftp

Я хочу настроить общедоступный сервер хранения, который позволяет sftp и rsync (через ssh). Я работаю с chroot тюрьма и rssh. Когда пользователь подключается к серверу с sftp он может читать все файлы в chroot jail (например, / lib и / bin) в chroot. Аналогично с rsync (rsync --list-only user@server:/). Я хотел бы иметь настройку, в которой пользователь может только просматривать и не выходить из своего домашнего каталога.

Дополнительным требованием является то, что я не хочу настраивать среду chroot для каждого пользователя.

Я уже пробовал операторы chrootdirectory и forcecommand в sshd_config который отлично работает для sftp но не позволяет rsync.

для части sftp вы можете посмотреть директивы Подсистема sftp internal-sftp вместе с ChrootDirectory в файле sshd_config.

Вы пытались настроить команды на принятых ключах, как предложено в Попытка настроить chroot'd rsync ?

Отрывок:

Предоставление доступа ssh не обязательно подразумевает полный доступ к оболочке, например, здесь показано, как использовать файл ssh authorized_keys, чтобы разрешить резервное копирование через 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

Также есть указатели на две статьи в блоге. Первый объясняет, как ограничить ssh до rsync:

Второе, что вам не нужно, это настройка среды chroot.

Лично я бы пошел на chroot и настройку $USER/{bin|lib} как привязные крепления. Таким образом, я бы поддерживал единую среду chroot, установленную на chroot каждого пользователя.