Могу ли я использовать 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.