- How to install and setup SFTP server on Ubuntu 22.04
- 1. Update system repositories.
- 2. Install ssh server
- 3. Create SFTP user account.
- 4. Connect to sftp
- 5. Useful SFTP commands
- Conclusion
- Руководство по установке SFTP сервера на Linux
- Что такое SFTP?
- Установка SFTP-сервера на Linux
- Этап 1: Создание групп, пользователей, каталогов
- Этап 2: Настройка sshd_config
- Этап 3: Перезагрузите службу
- Доступ к SFTP через командную строку Linux
- Примеры команд SFTP
- Руководство по настройке SFTP-сервера в Linux
- Настройка SFTP-сервера в Linux
- Шаг 1: Создание групп, пользователей, каталогов
- Шаг 2. Настройте sshd_config
- Шаг 3: Перезапустите сервис
- Доступ к SFTP через командную строку Linux
- Примеры команд SFTP
How to install and setup SFTP server on Ubuntu 22.04
SFTP (Secure File Transfer Protocol) is a file transfer protocol that provides secure access to a remote computer. Think of it as a tunnel provider, whenever you want to connect remotely, you use SFTP protocol to ensure your connection is secure from eavesdropping, we use Secure Shell (SSH) for that.
FTP protocol is a client/server protocol that transfers files over the internet. FTP clients are used to sending and retrieving files to and from servers storing files and also responding to the clients’ needs.
To get started with the installation, make sure ssh is installed, then set up sftp user group, configure ssh service, and lastly connect via sftp service.
1. Update system repositories.
To start off, update your system repositories in order to make them up to date.
sudo apt update && apt upgrade -y
2. Install ssh server
SFTP depends on ssh protocol for communication, we have to install it if not already installed on your system.
The following will be the sample output.
If you want to install FTP over OpenSSH, you need to edit the sshd configuration file.
sudo vim /etc/ssh/sshd_config
You will need to add this below the file.
Match group sftp ChrootDirectory /home X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
Restart the ssh server for the changes to take effect.
sudo systemctl restart ssh
3. Create SFTP user account.
Set up STTP user and group which will log in here.
To set the group use the following command.
$ sudo addgroup sftpgroup Adding group `sftpgroup' (GID 1000) . Done.
Then we need to create sftpuser and you need to assign it to sftp group
sudo useradd -m sftpuser -g sftpgroup
Set the password for sftpuser.
$ sudo passwd sftpuser New password: Retype new password: passwd: password updated successfully
Lastly, grant the new user access home directory.
sudo chmod 700 /home/sftpuser/
4. Connect to sftp
To connect to sftp we use the command
For instance, to login to the sftp I have created, I need to type sftp [email protected]
$ sftp [email protected] The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established. ED25519 key fingerprint is This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '127.0.0.1' (ED25519) to the list of known hosts. sftpu[email protected]'s password: Connected to 127.0.0.1. sftp> sftp>
5. Useful SFTP commands
Whenever you need help with any command using the following command.
If you want to navigate through your SFTP, use pwd
sftp> pwd Remote working directory: /home/sftpuser
To download files with sftp command.
Conclusion
We have successfully installed sftp on Ubuntu 22.04, happy learning.
Руководство по установке SFTP сервера на Linux
Привет, друг! Мы подготовили удобную инструкцию по установке и настройке SFTP-сервера Linux.
Что такое SFTP?
SFTP — это безопасный протокол передачи файлов — «Secure SHell» File Transfer Protocol. То есть это версия FTP, которая для безопасности поверх использует SSH. FTP делает то же самое, но без шифрования, поэтому использовать SFTP предпочтительнее.
Установка SFTP-сервера на Linux
Чтобы выполнить эти шаги, вам нужно иметь права sudo. SFTP прост в установке, но сначала необходимо установить OpenSSH со стороны сервера и SSH-пакет со стороны клиента.
Чтобы установить OpenSSH на сервер, используйте следующую команду:
sudo apt install openssh-server [Ubuntu/Debian] sudo yum –y install openssh-server openssh-clients [CentOS/RHEL]
Вам также понадобится SSH на компьютере, с которого вы хотите получать доступ к серверу SFTP.
sudo apt install ssh [Ubuntu/Debian]
Теперь все готово для настройки SFTP.
Этап 1: Создание групп, пользователей, каталогов
Для безопасного использования SFTP, лучше всего создать группы и пользователей, которые будут использовать только эту службу.
Создадим группу с названием sftpg, при помощи комыды groupadd :
Далее создадим пользователя seenisftp, и добавим его в группу.
sudo useradd -g sftpg seenisftp sudo passwd seenisftp
В команде useradd параметр -g указывает группе, какого пользователя нужно добавить.
Предположим, что вы хотите использовать каталог /data/ в качестве корневого для sftp, а /data/USERNAME — для каждого пользователя. Поэтому, когда пользователи входят через sftp, они должны будут оказаться в каталоге /data/USERNAME . Также создадим ограничение при котором пользователи смогут читать файлы из этого каталога, но загружать их смогут только в каталог uploads .
Cоздадим каталоги и изменим их доступ:
sudo mkdir -p /data/seenisftp/upload sudo chown -R root.sftpg /data/seenisftp sudo chown -R seenisftp.sftpg /data/seenisftp/upload
Важно: убедитесь, что владелец /data/USERNAME и есть root, это обязательно для изменения корневого каталога в SFTP
Этап 2: Настройка sshd_config
Далее нужно настроить сервер так, чтобы когда пользователь, из группы sftpg, входил в систему, он попадал в sftp вместо обычной оболочки, в которую попадает через ssh. Добавьте следующий фрагмент кода в файл /etc/ssh/sshd_config :
Match Group sftpg ChrootDirectory /data/%u ForceCommand internal-sftp
ChrootDirectory позволяет создать необходимый каталог в качестве корневого узла ( / каталог) в дереве каталогов. Вошедший в систему пользователь не сможет увидеть ничего выше этого каталога и это не даст ему получить доступ к файлам других пользователей. %u — это escape код для заполнения его текущим именем пользователяm, во время входа в систему.
Этап 3: Перезагрузите службу
Чтобы выполнить внесенные в sshd_config изменения, перезапустите службу:
sudo systemctl restart sshd
Доступ к SFTP через командную строку Linux
Заходите в SFTP также как в SSH:
Примеры команд SFTP
COMMAND [SOURCE] [DESTINATION]
Параметрами могут быть либо локальные, либо удаленные системные пути.
- GET — загрузка содержимого с удаленного сервера в локальную систему.
PUT ~/Pictures/picture2.jpg uploads/
Руководство по настройке SFTP-сервера в Linux
S FTP расшифровывается как SSH File Transfer Protocol. Если вы догадались, это хорошо. Это версия FTP, которая использует SSH сверху. Это позволяет пользователям загружать и скачивать файлы на сервер Linux и с него через зашифрованное соединение. FTP делает то же самое без шифрования, и именно поэтому SFTP сейчас предпочитают FTP.
Настройка SFTP-сервера в Linux
Мы использовали Ubuntu в этой статье. Команды установки специфичны для Ubuntu и Debian, но остальные шаги можно выполнить в любом другом дистрибутиве Linux.
Чтобы установить OpenSSH на сервере, вы можете использовать следующую команду:
sudo apt install openssh-server
Вам также нужен SSH в системе, откуда вы собираетесь получить доступ к SFTP-серверу.
После того, как это будет сделано, у вас будет все готово для настройки SFTP. Это сделано в три этапа, и мы собираемся показать вам их один за другим.
Шаг 1: Создание групп, пользователей, каталогов
Для безопасного использования SFTP (или любой другой службы в целом) лучше всего создавать группы и пользователей, которые будут использовать эту службу и только эту службу. «Лучше всего дать одно конкретное право одной конкретной организации».
В случае, если вы хотите предоставить доступ SFTP, а также нормальный доступ к системе, создайте пользователей таким образом, чтобы их было легко идентифицировать в соответствии с услугой. Например, если andreyex используется для нормального доступа к системе, тогда andreyexsftp может использоваться для доступа SFTP. Используя этот метод будет легче на стороне администрации.
Давайте создадим группу с именем «sftpg» следующим образом:
Давайте создадим пользователя с именем andreyexftp, добавим его в указанную выше группу и дадим ему пароль.
sudo useradd -g sftpg andreyexsftp sudo passwd andreyexsftp
В приведенной выше команде опция -g указывает группу, в которую следует добавить пользователя. Вы можете перечислить всех пользователей в Linux и убедиться, что новый пользователь добавлен.
Предположим, вы хотите использовать каталог /data/в качестве корня для sftp и /data/USERNAME для каждого пользователя. Поэтому, когда пользователи входят в систему через sftp, они должны находиться в /data/USERNAME в качестве каталога по умолчанию (точно так же, как вы находитесь в каталоге /home/USERNAME,когда вы входите в систему Linux через SSH). Кроме того, примите ограничение, что они могут читать файлы из этого каталога, но могут загружать только в каталог загрузки.
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 локальной системы.
PUT — загрузка содержимого из локальной системы в удаленную систему. Ниже команда загружает ~ /Pictures/poster2.jpg в нашу папку загрузок.
PUT ~/Pictures/poster2.jpg uploads/
RM — Для удаления файлов в удаленной системе. Это очень похоже на команду rm. Вы можете видеть ниже, которая удаляет изображение в uploads/poster3.jpg
Вышеуказанные команды очень просты и достаточны для изучения FTP /SFTP-сервера. Если вы хотите узнать больше, используйте команду help.
Мы надеемся, что эта статья помогла вам в настройке SFTP-сервера в Linux.
Расскажите нам в комментариях о настройке вашей файловой системы SFTP. Это как упомянуто в этой статье или объединенный каталог или что-нибудь еще?
Если вы нашли эту статью полезной, поделитесь ею с друзьями. Если у вас есть предложения, не стесняйтесь оставить их ниже.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.