Назад | Перейти на главную страницу

Могу ли я использовать SFTP в качестве SCP?

Моему клиенту требуется простое хранилище, доступное через SCP и SFTP. Будет две учетные записи пользователей, одна предназначена только для чтения, а другая - для чтения и записи.

По соображениям безопасности я хочу сделать это как можно больше:

  1. Я хочу, чтобы пользователь был ограничен своим домашним каталогом без возможности выхода
  2. Корневой каталог пользователя должен оставаться доступным для записи. Внутренний sftp SSH с chroot, к сожалению, не работает
  3. Я не хочу разрешать доступ к обычной оболочке
  4. Я не хочу, чтобы пользователи могли связываться с разрешениями / владельцами файлов

До сих пор я реализовал SFTP с использованием SSH + MySecureShell, он работает и кажется довольно надежным. Однако SCP не работает, что было одним из требований моего клиента.

  1. Есть ли способ заставить SCP работать с MySecureShell? Или какой-нибудь другой снаряд?
  2. Если нет, есть ли способ использовать sftp из командной строки, как scp? Я имею в виду, не интерактивно и с использованием синтаксиса, максимально приближенного к SCP.

в /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.