Существует много описанных решений, чтобы заставить ваше SSH-соединение запускать только SFTP, изменив sshd_config, добавив новое совпадение группы и предоставив этой новой группе Forcecommand internal-sftp
Что ж, это отлично работает, но я бы хотел иметь немного больше функций.
Мои серверы автоматически запрещают IP-адреса, которые часто пытаются подключиться за короткое время. Поэтому, когда вы используете какой-либо SFTP-клиент, который открывает несколько соединений для более быстрой работы, он может быть мгновенно заблокирован сервером на долгое время.
На серверах есть скрипт для внесения пользователей в белый список администратором. Я изменил этот сценарий, чтобы внести в белый список пользователя, который запускает сценарий.
Все, что мне нужно сделать, это заставить сервер выполнять этот сценарий, когда кто-то входит в систему. На SSH это не проблема, просто поместите его в .bashrc или что-то в этом роде, но Forcecommand не запускает эти скрипты при входе в систему.
Есть ли способ запустить такой сценарий оболочки до или одновременно с запуском Forcecommand?
если проблема заключается в том, что люди пытаются проникнуть внутрь грубой силой, попробуйте изменить порт, на котором находится ваш sftp-сервер. Люди вообще спамят только порт 22.