
Я пытаюсь настроить пользователя с доступом 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
файл