Разрешение как SFTP, так и SSH с chrooted-каталогом

Разрешение как SFTP, так и SSH с chrooted-каталогом

Я пытаюсь настроить пользователя с доступом SFTP и ограниченным доступом SSH. Поэтому я сделал chroot пользователя и затем настроил его в основном точно так, как указано вэтот урок. Однако, хотя я могу успешно подключиться к серверу по ssh, при попытке подключиться через SFTP-соединение он просто сообщает о сбое подключения.

Исследования и попытки исправления

Я пытался найти что-нибудь, что могло бы объяснить, как это сделать, но смог найти толькоЭта темана которые не было никаких ответов. Кроме того, я не смог найти в сети ни одной статьи, которая показывала бы, как это можно сделать.

Я также попытался скопировать всю папку /binцеликом /libв chrooted-каталог, чтобы убедиться, что нет никаких пропущенных команд, которые могут вызывать сбой. Просмотр /var/log/auth.logне дал никаких результатов, включая то, что единственный журнал был о том, что соединение было закрыто пользователем, включая то, когда я установил LogLevel Debug2в /etc/ssh/sshd_config. Попытка подключиться с помощью SCP-соединения в WinSCP позволяет мне видеть файлы, однако я не могу ничего скопировать на свой локальный диск или наоборот

Файл конфигурации SSHD (соответствующий раздел):

Match User test_user
    ChrootDirectory /home/test_user

решение1

В конце концов я нашел jailkitинструмент, который предназначен для автоматизации ареста пользователей, а не для того, чтобы делать это вручную, как я изначально пытался сделать.

Для настройки chroot-каталога я выполнил следующие шаги:

Установка (на Ubuntu) Установку из источника можно найтиздесь

sudo apt install jailkit

Настройка каталога

Список различных пакетов, к которым можно разрешить доступ, можно найти по адресу /etc/jailkit/jk_init.ini. Я также установил git таким образом после того, как настроил его

sudo chown root:root /srv/test_user
sudo jk_init -v /srv/test_user netutils basicshell jk_lsh openvpn ssh sftp

Общий формат ниже

sudo chown root:root <chroot_directory>
sudo jk_init -v <chroot_directory> <packages>

Арест пользователя

sudo jk_jailuser -m -j /srv/test_user test_user

Изменение оболочки

Наконец, оболочка, указанная в <chroot_directory>/etc/passwdдолжна быть изменена с /usr/sbin/jk_lshна /bin/bash. Обратите внимание, что должны быть только записи для test_user, root и, возможно, еще одного входа

Оттуда вы можете войти через ssh или sftp/scp и получить доступ ко всему, как и ожидалось. Обратите внимание, что для входа через открытый ключ вам нужно будет настроить ~/.ssh/authorized_keysфайл

Связанный контент