Я настраиваю веб-сервер на базе Windows Server 2019. Один из наших поставщиков должен иметь возможность загружать файлы. У меня есть
- Добавлен sshd
- Создал логин для их использования
- Создал группу для этого логина
- Добавил этот логин в группу, и удалил логин из всех остальных групп
- Создал каталог загрузки
- Учитывая группу Написать и Изменить разрешения в этом каталоге
- Добавлена строка
ForceCommand internal-sftp -d "C:\inetpub\ftproot\Upload"
к Соответствовать директива для этой группы в sshd_config
Все идет нормально. Этот логин может подключаться к ящику через SFTP, и сеанс автоматически начинается в каталоге Загрузить, и он может загружать и скачивать файлы оттуда. Но я не могу понять, как запретить ему видеть содержимое других каталогов. Просто удаление логина из группы Пользователи не имел никакого эффекта. Отказ от группы Читать и Список в заключении ftproot каталог приводит к невозможности подключения (с ошибкой аутентификации). Единственное предложение, которое я нашел за час поиска в Google, - это установить значение для ChrootDirectory
, но это приводит к тому, что ни один логин не может подключиться по SFTP или SSH (с очевидными отказами службы отвечать). Я новичок в Windows Server, и у меня нет идей. Очевидно, должен быть правильный способ сделать это - может ли кто-нибудь указать мне правильное направление?
[Обновлять]
Эта коробка работает под управлением OpenSSH 7.7:
> сш -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
Когда я добавляю эту строку в Соответствовать директива для группы sftp:
ChrootDirectory "C:\inetpub\ftproot\Upload"
а затем попытайтесь подключиться как любой пользователь, независимо от того, входит ли он в эту группу или нет, это то, что появляется в sshd.log (очевидно, pid, порт и метка времени будут различаться):
3332 17-08-2021 12:04:24.931 Неверный пароль для недопустимого пользователя sftpuser с порта XX.XX.XX.XX 34240 ssh2