Невозможно chroot пользователя

Невозможно chroot пользователя

Мой ssh-сервер работает как часы уже 4 года, поэтому я просто хочу добавить пользователя и выполнить chroot для него в определенной папке.

> useradd -m -c /home/thomas -s /bin/sh thomas
> passwd thomas
> chmod 755 /home/thomas
> chown root: /home/thomas
> service ssh restart

Когда я это делаю, яможетподключаюсь sshи мое sftpсоединение работает. Проблема в том, что я хочу сделать chroot в определенную папку.

> vim /etc/ssh/sshd_config

Добавьте в конец файла:

Match user thomas
    ChrootDirectory /home/%u

Когда я добавляю только это, это не должно ничего менять, верно? Конфигурация должна быть той же, и я все равно должен иметь возможность подключаться или использовать sftp... поэтому я перезапускаю service ssh restartи больше не могу подключиться к sftp.

На всякий случай:

root@xx:/etc/nginx/sites-enabled# /usr/sbin/sshd -v
sshd: illegal option -- v
OpenSSH_6.0p1 Debian-4+deb7u6, OpenSSL 1.0.1t  3 May 2016
usage: sshd [-46DdeiqTt] [-b bits] [-C connection_spec] [-c host_cert_file]
            [-f config_file] [-g login_grace_time] [-h host_key_file]
            [-k key_gen_time] [-o option] [-p port] [-u len]
root@xx:/etc/nginx/sites-enabled#

Что я делаю не так?

решение1

В sshd_configруководстве указано, что

Должен ChrootDirectoryсодержать необходимые файлы и каталоги для поддержки сеанса пользователя. Для интерактивного сеанса требуется как минимум оболочка, обычно sh(1), и базовые /devузлы, такие как null(4), zero(4), stdin(4), stdout(4), stderr(4), и tty(4)устройства. Для сеансов передачи файлов с использованием SFTP дополнительная настройка среды не требуется, если используется внутрипроцессный sftp-сервер, хотя сеансы, использующие ведение журнала, могут потребовать /dev/logвнутри каталога chroot в некоторых операционных системах (см. sftp-server(8)подробности).

Вам следует создать devкаталог, а затем скопировать /dev/MAKEDEVтуда скрипт. Используя скрипт, создайте необходимые файлы устройств.

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

Ссылка на «внутрипроцессный sftp-сервер» означает, что ForceCommand internal-sftpего следует использовать в вашем Matchблоке.

Примечание: отрывок взят из OpenSSH 7.5, поскольку у меня нет доступа к более старым реализациям SSH.

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