ГлавнаяОперационные системыLinuxКак настроить SFTP-сервер в Linux

Как настроить SFTP-сервер в Linux

Большинство людей предпочитают такие утилиты, как FileZilla, WinSCP или другие FTP-программы, когда им необходимо передавать файлы на серверы Linux или с них. SFTP — это безопасная альтернатива исходному протоколу FTP. Он выполняет в основном те же функции, что и его незащищенная версия, но с дополнительным уровнем шифрования. Для этого он использует протокол SSH, который предоставляет ему возможности шифрования. Настройка SFTP-сервера в вашей системе Linux включает в себя несколько шагов, которые мы демонстрируем здесь.

Читайте также: Как создать SSH-приманку для поимки хакеров на вашем Linux-сервере

Что такое SFTP?

SFTP (протокол безопасной передачи файлов) — сетевой протокол для передачи файлов от клиента на сервер. В отличие от FTP (протокол передачи файлов), SFTP использует протокол SSH (Secure Shell) для шифрования отправляемых данных. Он был разработан учеными-компьютерщиками Тату Юлененом и Сами Лехтиненом, которые также ответственны за разработку протокола SSH в 1990-х годах. Однако современная версия разработана IETF (Интернет-инженерная группа).

Его можно назвать проток

Что такое SFTP?

системы, хотя его название предполагает, что он выполняет только операции передачи файлов. При отправке файла по SFTP от клиента на принимающий сервер данные шифруются перед отправкой по назначению. Если отправляемые данные перехвачены «посредником», третья сторона не сможет их легко расшифровать.

Установка SSH и сервера OpenSSH

Мы начинаем процесс настройки SFTP-сервера с установки SSH и сервера OpenSSH.

В большинстве установок Linux уже установлен SSH по умолчанию, но если в вашей системе его нет, вы можете установить его с помощью команды aptAdvanced Packaging Tool:

sudo apt install ssh

После установки SSH вы можете проверить его версию, выполнив команду sshс флагом -V:

ssh -V

/div>

Проверка версии Ssh

Вы можете установить сервер OpenSSH в системах Debian и Ubuntu, например, с помощью команды apt:

sudo apt install openssh-server

Вы можете сделать то же самое в Arch Linux, используя команду pacman:

sudo pacman -S openssh

Читайте также: Как настроить и использовать SSH в Linux

Создание пользователей, групп и каталогов для SFTP

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

Установка SSH и сервера OpenSSH

группы для пользователей SFTP. Это достигается с помощью команды groupadd:

sudo groupadd sftp_group

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

sudo useradd -g sftp_group sftp_user

После создания пользователя присвойте ему пароль с помощью команды passwd:

sudo passwd sftp_user
Изменение пароля пользователя Sftp

Создайте каталог по умолчанию для вновь созданного пользователя:

sudo mkdir -p /data/sftp_user/uploaded_files

Используйте команду chown, чтобы предоставить каталогу необходимые разрешения:

sudo chown -R root:sftp_group /data/sftp_user
sudo chown -R sftp_user:sftp_group /data/sftp_user/uploaded_files

Настройка SSH-сервера

Следующим шагом по настройке SFTP-сервера является настройка SSH-сервера, который он будет использовать.

Отредактируйте файл «sshd_config», расположенный в «/etc/ssh/», чтобы пользователь использовал оболочку SFTP при п

Создание пользователей, групп и каталогов для SFTP

легко отредактировать файл, используя часто используемый Нано-редактор , который есть во многих установках Linux по умолчанию:

sudo nano /etc/ssh/sshd_config

Найдите конец файла и добавьте следующее:

Match Group sftp_group
ChrootDirectory /data/%u
ForceCommand internal-sftp
Nano Editor Редактировать конфигурацию Sshd

Перезапустите службу SSH:

sudo systemctl restart sshd

Читайте также: Как показать все активные SSH-соединения в Linux

(Необязательно) Изменение порта SFTP

Если вы хотите изменить порт, который использует SFTP-сервер, со значения по умолчанию 22 на выбранный вами вариант, вам необходимо еще раз отредактировать файл «sshd_config».

Еще раз отредактируйте файл с помощью редактора Nano:

sudo nano /etc/ssh/sshd_config

Найдите в файле строку со значением порта по умолчанию 22, закомментированную:

#Port 22

Вы можете удалить знак решетки (#), используемый для закомментирования строки, и добавить значение порта по вашему выбору. В моем случае я меняю значение на 1111:

Port 1111

Теперь просто сохраните файл

Редактор Nano Редактировать номер порта конфигурации Sshd

и перезапустите сервер:

sudo systemctl resta

Настройка SSH-сервера

g>Читайте также: 8 полезных и интересных команд Bash

Вход и использование сервера

Сервер установлен и настроен, он готов к использованию. Вы можете легко загружать и скачивать файлы, используя зашифрованный сеанс, предоставляемый SSH.

Прежде чем войти в систему, не помешает просмотреть предоставленное руководство:

sftp -h
Руководство по Sftp

Войдите на сервер, указав имя пользователя и IP-адрес сервера или имя хоста в следующем формате:

sftp USER@HOST

Кроме того, вы можете указать порт, который использует ваш SFTP-сервер (по умолчанию — 22), используя флаг -P:

sftp USER@HOST -P <PORT>

При входе в систему вас приветствует оболочка SFTP.

Просмотрите руководство, набрав help.

Команда справки Sftp 1

Загрузка файлов

Чтобы скачать файл:

get /path/to/file/on/server

Пример:

get /bin/ls

Этот файл будет загружен в ваш текущий каталог — тот, в котором вы находились локально до входа на сервер. Чтобы загрузить в определенный локальный каталог:

get /path/to/file/on/server (Необязательно) Изменение порта SFTPlocal/folder

Чтобы копировать каталоги, необходимо добавить в команду параметр -r, обозначающий рекурсию.

get -r /bin /home/username/Desktop/bin
каталог-sftp-копии

Не забудьте добавить имя для нового каталога, который вы хотите создать локально, например «/home/username/Desktop/bin» в данном случае. Если вы используете get -r /bin /home/username/Desktop, файлы будут копироваться прямо на рабочий стол. Обратите внимание: копируются файлы, а не сам каталог.

Загрузка файлов

Загрузка файлов и каталогов осуществляется по тем же принципам. Единственным исключением является то, что пути меняются местами, то есть сначала вы указываете локальный файл/каталог, а затем удаленный путь.

Для начала загрузите файлы на сервер с помощью команды put:

put /path/to/local/content /path/to/remote/location

При загрузке каталогов (рекурсивной) помните, что применяется то же правило из предыдущего раздела: на самом деле копируются файлы в каталоге, а не сам каталог. Укажите новое имя каталога, в который вы хотите скопировать эти файлы.

put -r /home/username/Desktop/bin bin

При этом на удаленной стороне создается новый каталог под названием «bin».

Возобновление передачи и использование путей, содержащих пробелы

Если передача большого файла прерывается, вы можете возобновить ее, заменив предыдущую команду на reput<

Вход и использование сервера

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

reget /path/to/file/on/server /path/to/local/file
reput /path/to/local/file /path/to/file/on/server

Чтобы возобновить передачу каталогов, просто добавьте параметр -r:

reput -r /home/username/Desktop/bin bin

Если путь к файлу содержит пробелы, заключите его в кавычки:

put "/home/username/My Documents/Files"

Другое использование

Вы можете просмотреть файлы и каталоги с помощью команды ls:

ls -l

Разрешения файлов также можно изменить с помощью команды chmod:

chmod <PERMISSION> <FILE>

Кроме того, вы можете создать новый каталог с помощью команды mkdir:

mkdir <DIRECTORY_NAME>

Читайте также: Загрузка файловзка файловash в фоновом режиме в Linux">Как запускать команды Bash в фоновом режиме в Linux

Часто задаваемые вопросы

1. Нужно ли мне устанавливать SFTP-клиент?

В большинстве случаев нет, поскольку большинство систем Linux поставляются с терминальным SFTP-клиентом, установленным по умолчанию.

2. Могу ли я использовать аутентификацию с открытым ключом?

Да, вы можете использовать аутентификацию с открытым ключом вместо пароля в качестве метода аутентификации. Его настроить довольно просто, и он обеспечивает дополнительную безопасность вашего сервера.

3. Могу ли я одновременно разместить SSH-сервер?

Да. Однако вам необходимо убедиться, что ваш SFTP-сервер не использует тот же порт, что и SSH-сервер .

Возобновление передачи и использование путей, содержащих пробелы

Другое использование

Часто задаваемые вопросы

1. Нужно ли мне устанавливать SFTP-клиент?

2. Могу ли я использовать аутентификацию с открытым ключом?

3. Могу ли я одновременно разместить SSH-сервер?

ПОХОЖИЕ СТАТЬИ

Популярные записи