Можно ли запустить SFTP-сервер без использования демона SSH, так сказать, в "пространстве пользователя"? Мне не нравится , как учетные записи пользователей системы связаны с учетными данными для входа, я лучше иметь отдельный конфигурационный файл , чтобы указать разрешенные пользователю: комбинации паролей и есть демон работать под одним пользователем. Если это невозможно сделать с SFTP, то решение FTP тоже будет в порядке.
1 ответ
без использования демона SSH, в "пространстве пользователя", так сказать
Здесь есть неправильное представление. Демон SSH - это "пространство пользователей", как и любой другой сервер сетевых протоколов - он не обязательно является частью ОС.
Более важно: то, как проверяются учетные данные для входа, не имеет ничего общего с присутствием демона SSH, но зависит от того, каким демоном SSH вы пользуетесь, и как он написан (запрограммирован) для работы. Нет ничего, что заставляло бы демона SSH использовать системные учетные записи; это выбор программиста (хотя по общему признанию единственный выбор, который имеет смысл для ежедневного использования).
(Примечание: это не всегда так для всех сетевых программ. Например, встроенный SMB-сервер Windows фактически является частью ОС и, как правило, не может быть заменен. Но, к счастью, ваш вопрос не о SMB в Windows; это о SSH на Linux.)
Продолжая:
Можно ли запустить SFTP-сервер без использования демона SSH
И да и нет.
SFTP определен для использования через транспорт SSH; большинство клиентов не будут поддерживать никакой другой транспорт. Важным следствием является то, что SFTP не имеет собственной защиты (например, аутентификации или шифрования) - эти уровни безопасности устанавливаются во время рукопожатия SSH.
Однако SFTP не требует конкретно sshd OpenSSH, а также не требует полнофункционального общесистемного демона SSH в целом - полный стек может быть реализован другим программным обеспечением, часто как в одной программе.
Мне не нравится, как системные учетные записи пользователей привязаны к учетным данным
Для общих демонов SSH использование системных учетных записей, как правило, является единственным вариантом, который имеет смысл, поскольку они позволяют клиенту иметь интерактивный доступ к оболочке, с помощью которого он может запускать всевозможные внешние программы и системные команды. Одна только служба SSH не может обеспечить разделение между программами, запускаемыми разными пользователями, если она не получит помощь от ОС - и по совпадению, именно для этого созданы системные учетные записи. Вот почему OpenSSH использует системные учетные записи и ничего больше.
К счастью, вышесказанное не является проблемой для демонов FTP и выделенных демонов SSH «только для SFTP», поскольку все операции FTP/SFTP происходят внутри самого демона, и для изоляции пользователя не требуется ничего, кроме тщательной проверки путей к файлам.
Итак, наконец-то добрались до вашего запроса:
Я бы предпочел иметь отдельный конфигурационный файл для указания разрешенных комбинаций пользователь: пароль и запуск демона под одним пользователем
Для этого есть программное обеспечение. Поиск FTP-серверов, которые поддерживают аутентификацию "виртуальных пользователей" через какую-либо форму базы данных. Некоторые из них также имеют возможность SFTP, например, ProFTPd. Большинство, однако, делают только FTP/FTPS.