У меня работает стабильная версия Debian, и я хочу создать следующую среду для пользователей из моей группы sftponly:
- в тюрьму
- можно передавать с SFTP
- может передавать с SCP
- не может войти в систему интерактивно с SSH
Из моих экспериментов и исследований кажется, что следующая строфа в sshd_config дает мне 90%:
Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Это дает мне тюрьму SFTP и никакого SSH, что хорошо. Но он также отключает SCP, что далеко не идеально, поскольку довольно много клиентов являются устаревшими сценариями, использующими SCP, а не SFTP (сервер, который мы заменяем, поддерживают оба протокола), и поскольку эти клиенты не находятся под нашим контролем и легко модифицированный, вероятно, нецелесообразно вообще отключать SCP.
Имеет смысл, что эта конфигурация отключит SCP, так как входящие соединения SCP приводят к тому, что sshd порождает процесс `scp 'через оболочку входа пользователя, как этот пользователь. Кажется, что то же самое обычно было бы верно для SFTP, если бы не специальный обработчик «internal-sftp».
Итак, я предполагаю, что мой вопрос: есть ли способ достичь того же эффекта, что и «internal-sftp», но для SCP, не прибегая к использованию сторонних инструментов, таких как scponly и rssh? Что действительно хорошего в 'internal-sftp', так это в том, что он не требует установки тюрьмы с файлами поддержки или работы с потенциально используемыми исполняемыми файлами сторонних разработчиков (в частности, rssh имеет историю эксплойтов).