Как добавить пользователя только с SFTP (без разрешения доступа по SSH) в CentOS 7

Введение

Этот учебник поможет вам создать пользователя только для SFTP (без доступа SSH) в системах CentOS и RedHat. Пользователь может подключиться к серверу только с доступом SFTP, и ему разрешен доступ только к указанному каталогу. Пользователь не может SSH на сервер. Следуйте инструкциям ниже, чтобы создать эту учетную запись только для SFTP.
Предпосылки
Чтобы следовать этому руководству, убедитесь, что вы вошли на сервер с sudoпользователем.

Шаг 1 - Создать нового пользователя

Сначала создайте нового пользователя, которому будет предоставлен только доступ для передачи файлов на сервер. Здесь мы используем имя пользователя mysftp , но вы можете использовать любое имя пользователя, которое вам нравится.
adduser mysftp
Затем назначьте пароль новому пользователю:
passwd mysftp
Введите надежный пароль и повторите его еще раз, чтобы подтвердить его.
Вы создали нового пользователя, которому будет предоставлен доступ к ограниченному каталогу. На следующем шаге мы создадим каталог для передачи файлов и настроим необходимые разрешения.

Шаг 2 - Создайте каталог для передачи файлов

После того, как наш пользователь создан, следующим шагом будет создание каталога, в котором будет действовать SFTP, предотвращающий доступ, и это должно быть настроено с определенными параметрами.
Мы создадим каталог с именем, /var/sftp/uploadsв котором он /var/sftpявляется частью пользователя root, и никакие другие пользователи не будут иметь текущих разрешений, а в подкаталоге /var/sftp/uploadsвладельцем будет доступ нового пользователя. Мы создаем каталог, используя следующую строку:
mkdir -p /var/sftp/uploads
Установите владельца /var/sftpв root .
chown root:root /var/sftp
Предоставьте root- права на запись в тот же каталог, а другим пользователям предоставьте только права на чтение и выполнение.
chmod 755 /var/sftp
Измените владельца в uploadsкаталоге на mysftp .
chown mysftp:mysftp /var/sftp/uploads

Шаг 3 - Ограничить доступ к каталогу

На этом шаге мы ограничим доступ пользователя через терминал, но разрешим передачу файлов.
Откройте файл конфигурации сервера SSH с помощью viили вашего любимого текстового редактора:
vi /etc/ssh/sshd_config
Прокрутите до самого конца файла и добавьте следующий фрагмент конфигурации:
Match User mysftp
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Сохранить и выйти:
:wq
Выполните следующую команду, чтобы применить изменения в SSH:
systemctl restart sshd

Шаг 4 - Проверьте соединение SSH

Давайте удостоверимся, что наш новый пользователь mysftp может только передавать файлы.
Вход на сервер как mysftp с использованием обычного доступа к оболочке больше не должен быть возможным. Давай попробуем:
ssh mysftp@localhost
Перед возвращением к исходному приглашению вы увидите следующее сообщение:
This service allows sftp connections only.
Connection to localhost closed.
Это означает, что mysftp больше не может получить доступ к оболочке сервера через SSH.
Далее, давайте проверим, может ли пользователь успешно получить доступ к SFTP для передачи файлов.
sftp mysftp@localhost
Вместо сообщения об ошибке эта команда покажет сообщение об успешном входе в систему с интерактивной подсказкой.
Connected to localhost.
sftp>
Вы можете перечислить содержимое каталога, используя lsв приглашении:
sftp> ls
Это покажет uploadsкаталог, созданный на предыдущем шаге, и вернет вас к sftp>приглашению.
uploads

Вывод

Вы создали и ограничили пользователю доступ только по SFTP к одному каталогу на сервере, не предоставляя им полный доступ к оболочке. Хотя в этом руководстве для краткости используется только один каталог и один пользователь, вы можете распространить этот пример на несколько пользователей и несколько каталогов.

Добавить комментарий

Автору будет очень приятно узнать обратную связь о своем руководстве.

Комментариев 0