Могу ли я использовать SFTP в качестве SCP?
Мой клиент хочет простое хранилище, доступное через SCP и SFTP. Будет две учетные записи пользователей, одна только для чтения, а другая для чтения и записи.
Из соображений безопасности я хочу как можно больше заглушить это:
- Я хочу, чтобы пользователь был ограничен своим домашним каталогом без возможности выйти
- Корневой каталог пользователя должен оставаться доступным для записи. Внутренний sftp SSH с chroot, к сожалению, не в этом
- Я не хочу разрешать доступ к нормальной оболочке
- Я не хочу, чтобы пользователи могли связываться с разрешениями / владельцами файлов
До сих пор я реализовал SFTP с использованием SSH + MySecureShell, он работает и кажется довольно пуленепробиваемым. Однако SCP не работает, что было одним из требований моего клиента.
- Есть ли способ заставить SCP работать с MySecureShell? Или какая-то другая оболочка?
- Если нет, есть ли способ использовать sftp из командной строки, как вы бы scp? Я имею в виду, не в интерактивном режиме, а с использованием синтаксиса, максимально приближенного к SCP.
1 ответ
В /etc/ssh/sshd_config изменить тип подсистемы SFTP:
Subsystem sftp internal-sftp
Это позволяет выполнять все операции с файловой системой без какой-либо оболочки. Затем измените оболочку пользователя в passwd подать в /bin/true или что-то еще безвредное. Убедитесь, что добавленная "оболочка" упоминается в /etc/shells в качестве допустимого двоичного кода разрешено использовать в качестве оболочки.
Также вы можете ограничить пользователей chroot особенность internal-sftp,
Match User alice
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /some/place/alicedir
Справочники some, place а также alicedir должен принадлежать root и не должен быть доступен для записи никем, кроме root, каталог alicedir должен содержать каталоги, такие как upload, htdocs или что должно принадлежать alice с разрешениями rwx------/700.