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

openssh chroot завершает соединение ssh

У меня есть сервер Debian Wheezy, на котором я хотел бы заблокировать определенных пользователей, когда они входят в систему через сервер openssh. Однако я получаю странную ошибку: в целях тестирования я просто добавил

ChrootDirectory /data/

В мой файл sshd_config (и перезапуск сервера)

Когда я пытаюсь войти в систему с помощью putty, окно просто закрывается без сообщения об ошибке. Когда я пытаюсь использовать openssh-client с сервера на себя, я получаю такую ​​ошибку:

ssh testuser@localhost
testuser@localhost's password:
Last login: ....
/bin/bash: No such file or directory
Connection to localhost closed

каталог / data / принадлежит root: root и имеет 755 разрешений. Если я попытаюсь добавить каталог / data / testuser с такими же разрешениями, произойдет та же ошибка.

В auth.log нет никаких следов ни одной попытки.

Если я удалю строку chroot из sshd_config и перезапущу сервер, мне будет разрешено входить в систему как обычно, как через putty, так и через openssh-client.

Почему я получаю эту ошибку? Я не понимаю этого.

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

Chroot в операционных системах Unix - это операция, которая изменяет видимый корневой каталог для текущего запущенного процесса и его дочерних процессов. Программа, запущенная в такой измененной среде, не может давать имена (и, следовательно, обычно не иметь доступа) к файлам за пределами назначенного дерева каталогов.