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