Нет подходящих цитат

Руководство по настройке SFTP-сервера в Linux

4 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
23 июня 2019
Руководство по настройке SFTP-сервера в Linux
SFTP расшифровывается как SSH File Transfer Protocol. Если вы догадались, это хорошо. Это версия FTP, которая использует SSH сверху. Это позволяет пользователям загружать и скачивать файлы на сервер Linux и с него через зашифрованное соединение. FTP делает то же самое без шифрования, и именно поэтому SFTP сейчас предпочитают FTP.

Давайте посмотрим, как вы можете настроить SFTP-сервер в системе Linux.

 

Настройка SFTP-сервера в Linux

Мы использовали Ubuntu в этой статье. Команды установки специфичны для Ubuntu и Debian, но остальные шаги можно выполнить в любом другом дистрибутиве Linux.

Для выполнения шагов вам необходимы права sudoer. Поэтому, если вы не обладаете правами sudo, обратитесь к системному администратору. Если вы один из них, пожалуйста, прочитайте о создании пользователя sudo в Ubuntu.

Настройка SFTP очень проста. Прежде чем перейти к этому, вам необходимо установить OpenSSH на стороне сервера и пакет SSH на стороне клиента.

Чтобы установить OpenSSH на сервере, вы можете использовать следующую команду:

sudo apt install openssh-server

 

Вам также нужен SSH в системе, откуда вы собираетесь получить доступ к SFTP-серверу.

sudo apt install ssh

 

После того, как это будет сделано, у вас будет все готово для настройки SFTP. Это сделано в три этапа, и мы собираемся показать вам их один за другим.

Шаг 1: Создание групп, пользователей, каталогов

Для безопасного использования SFTP (или любой другой службы в целом) лучше всего создавать группы и пользователей, которые будут использовать эту службу и только эту службу. «Лучше всего дать одно конкретное право одной конкретной организации».

В случае, если вы хотите предоставить доступ SFTP, а также нормальный доступ к системе, создайте пользователей таким образом, чтобы их было легко идентифицировать в соответствии с услугой. Например, если andreyex используется для нормального доступа к системе, тогда andreyexsftp может использоваться для доступа SFTP. Используя этот метод будет легче на стороне администрации.

Давайте создадим группу с именем «sftpg» следующим образом:

sudo groupadd sftpg

 

Давайте создадим пользователя с именем andreyexftp, добавим его в указанную выше группу и дадим ему пароль.

sudo useradd -g sftpg andreyexsftp 
sudo passwd andreyexsftp

 

В приведенной выше команде опция -g указывает группу, в которую следует добавить пользователя. Вы можете перечислить всех пользователей в Linux и убедиться, что новый пользователь добавлен.

Предположим, вы хотите использовать каталог /data/в качестве корня для sftp и /data/USERNAME для каждого пользователя. Поэтому, когда пользователи входят в систему через sftp, они должны находиться в /data/USERNAME в качестве каталога по умолчанию (точно так же, как вы находитесь в каталоге /home/USERNAME,когда вы входите в систему Linux через SSH). Кроме того, примите ограничение, что они могут читать файлы из этого каталога, но могут загружать только в каталог загрузки.

Давайте создадим каталоги и изменим их доступ и владельца следующим образом (читайте о правах доступа к файлам в Linux, чтобы узнать больше об этом).

sudo mkdir -p /data/andreyexsftp/upload
sudo chown -R root.sftpg /data/andreyexsftp
sudo chown -R andreyexsftp.sftpg /data/andreyexsftp/upload

 

Единственное, что может сбить с толку, – это передать права на каталог пользователя самому root. Это является обязательным для корреляции в SFTP. Поэтому убедитесь, что владелец /data/USERNAME является пользователем root.

На данный момент у нас есть пользователь с именем andreyexsftp с группой sftpg и с правами доступа, установленными для /data/andreyexsftp.

 

Шаг 2. Настройте sshd_config

Далее это вам нужно настроить SSH сервер таким образом, что всякий раз, когда пользователь, принадлежащий к группе sftpg входит в систему, он/она попадает в SFTP вместо обычной оболочки вы получите через SSH . Добавьте следующий фрагмент в /etc/ssh/sshd_config, если его еще нет.

Match Group sftpg
     ChrootDirectory /data/%u
     ForceCommand internal-sftp

 

В приведенном выше фрагменте ChrootDirectory позволяет сделать указанный каталог корневым узлом («/» каталог) в дереве каталогов. Зарегистрированный пользователь не может видеть ничего выше этого каталога. Так что это остановит текущего пользователя от доступа к файлам других пользователей через sftp . % u – код перехода для заполнения его текущим именем пользователя на момент входа в систему. Когда andreyexsftp регистрируется через sftp, он будет в /data/andreyexsftp в качестве своего корневого каталога.

 

Шаг 3: Перезапустите сервис

Чтобы внести изменения, внесенные в sshd_config, перезапустите службу следующим образом.

sudo systemctl restart sshd

 

Доступ к SFTP через командную строку Linux

Вы можете войти в SFTP, как вы это обычно делаете с SSH.

sftp andreyexsftp@andreyex.ru

 

Примеры команд SFTP

Команды SFTP обычно имеют следующий формат.

COMMAND [SOURCE] [DESTINATION]

 

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

GET – загрузить содержимое с удаленного сервера в локальную систему. Команда ниже загружает удаленный файл poster.img в каталог ~/Pictures локальной системы.

GET poster.img ~/Pictures

 

PUT – загрузка содержимого из локальной системы в удаленную систему. Ниже команда загружает ~ /Pictures/poster2.jpg в нашу папку загрузок.

PUT ~/Pictures/poster2.jpg uploads/

 

RM – Для удаления файлов в удаленной системе. Это очень похоже на команду rm. Вы можете видеть ниже, которая удаляет изображение в uploads/poster3.jpg

RM uploads/poster3.jpg

 

Вышеуказанные команды очень просты и достаточны для изучения FTP /SFTP-сервера. Если вы хотите узнать больше, используйте команду help.

Мы надеемся, что эта статья помогла вам в настройке SFTP-сервера в Linux.

Расскажите нам в комментариях о настройке вашей файловой системы SFTP. Это как упомянуто в этой статье или объединенный каталог или что-нибудь еще?

Если вы нашли эту статью полезной, поделитесь ею с друзьями. Если у вас есть предложения, не стесняйтесь оставить их ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 1074

Если статья понравилась, то поделитесь ей в социальных сетях:

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

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close