23.06.2025

Как настроить и использовать SFTP?

Часто возникает вопрос, при настройке и эксплуатации различных дистрибутивов ОС, как передать безопасно файлы по сети? Скажем сразу, что протоколов большое множество, но на наш взгляд, одним из эффективных и удобных является SFTP!

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

Что такое SFTP?

SFTP или же Secure File Transfer Protocol, протокол, который используется для зашифрованной передачи данных, поддерживающий аутентификацию пользователя и часто в заранее предустановлен на многих дистрибутивах. Так как технически он реализован в SSH-сервисе, то настройка пользователей и способов аутентификации, абсолютно идентична.

Напомним, что sshd использует PAM модули Linux для проверки подлинности пользователей, а так же имеет собственного агента для получения и проверки ключей шифрования.

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

Установка и управление файлами через SFTP

Обычно достаточно установки openssh-server, так как остальные пакеты докачиваются зависимостями:

apt install openssh-server

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

Get-WindowsCapability -Online | Where-Object Name -like ‘OpenSSH.Server*’ | Add-WindowsCapability –Online

После чего для подключения к SFTP-серверу необходимо прописать команду c синтаксисом:

sftp -P port_number user_name@hostname

Скриншот № 1 — SFTP подключение

Просмотрим возможный функционал утилиты и рассмотри на практическом примере реализацию функций:

Скриншот № 2 — Базовые команды

Для начала необходимо просмотреть в каких директориях мы находимся на удаленной ОС и локально. К сожалению, SFTP не поддерживает возможности выполнения более одной команды за раз, поэтому выполняться они будут по-раздельности:

pwd
lpwd

Скриншот № 3 — PWD

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

ls
lls

Скриншот № 4 — Список файлов

К примеру, нам необходимо перенести на удаленное устройство файл t.txt, для этого пропишем:

put -R local-path remote-path

Скриншот № 5 — Upload files

Такой же подход можно использовать и для команд, тогда будет необходимо добавить опцию -R в начало для рекурсивного копирования данных. Скачать же с удаленного устройства файлы можно такой же простой командой:

get -R remote-path local-path

Скриншот № 6 — Скачивание файлов

Так как сессии являются интерактивными оболочками, то в процессе работы могу возникнуть потребности в использовании локальной ОС на время, не выходя из сессии:

!command-in-the-shell

Скриншот № 7 — Выполнение команды в локальной оболочке

Если хотим открыть полноценный shell, то используем команду:

!

Скриншот № 8 — Выполнение команд в оболочке

А для выхода из нее q или exit. После чего для Windows откроется cmd, а для Linux стандартно указанный shell пользователя.

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