Гид по технологиям

Как пользоваться sftp в Linux: безопасная передача файлов

6 min read Linux Обновлено 29 Dec 2025
sftp в Linux: безопасная передача файлов
sftp в Linux: безопасная передача файлов

Передача файлов по SFTP на Linux

Что такое SFTP

SFTP (SSH File Transfer Protocol) — это протокол передачи файлов, который работает поверх SSH (Secure Shell). В отличие от классического FTP, SFTP шифрует как данные, так и управляющие команды, что защищает пароли и содержимое файлов при передаче по сети.

Коротко: SSH обеспечивает канал, SFTP использует этот канал для безопасной передачи файлов.

Важно: SFTP и FTPS — разные технологии. FTPS использует TLS поверх FTP; SFTP всегда идёт через SSH.

Типичные случаи использования

  • Безопасная передача бэкапов между серверами.
  • Обмен конфиденциальными файлами с подрядчиками.
  • Доставка артефактов сборки (CI/CD) на серверы деплоя.
  • Работа с Raspberry Pi и другими одноплатными компьютерами.

Доступ к удалённой машине

В Linux для работы с протоколом используют утилиту sftp (входит в OpenSSH). Подключение выполняется так (замените username и ip-адрес):

sftp username@ip-address-of-remote-pc

После ввода пароля вы попадёте в интерактивный режим sftp. Если подключение успешно, вы увидите приглашение sftp> и сможете вводить команды.

Если у вас нет удалённого сервера, можно протестировать локально:

sftp 127.0.0.1

Интерактивный терминал sftp на Linux

Важно: по умолчанию SFTP использует порт 22 (тот же, что и SSH). Если SSH сервис настроен на другом порту, укажите его через опцию -oPort или -P в клиентах, поддерживающих это.

Основные команды интерактивного режима

Sftp работает интерактивно. Команды нечувствительны к регистру. Ниже — часто используемые команды.

Список файлов и текущая директория

  • Просмотреть содержимое текущей директории на сервере:
ls
  • Просмотреть содержимое текущей директории локально:
lls
  • Узнать текущую директорию на сервере:
pwd
  • Узнать текущую локальную директорию:
lpwd

Используйте флаги для ls, например -l или -a.

Совет: сочетание Ctrl+L очищает экран терминала.

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

  • Передать один файл с локальной машины на сервер:
put localfile.ext
  • Передать каталог рекурсивно:
put -r localdir
  • Передать несколько файлов (маска):
mput *.xls

Пример передачи ISO-файла:

put manjaro-xfce-21.0.7-minimal-210614-linux54.iso

Во время передачи sftp показывает прогресс и скорость.

Вывод прогресса загрузки файла через sftp на Linux

Для прерывания передачи используйте Ctrl+C.

Скачивание файлов с сервера

  • Скопировать файл с сервера на локальную машину:
get index.html
  • Скопировать несколько файлов по маске:
mget *.html

Загрузка нескольких файлов с сервера через sftp

Управление правами и завершение сессии

  • Изменить права файла на сервере:
chmod 777 index.html
  • Завершить сессию sftp:
bye

Альтернативы: exit или quit.

Справка в интерактивном режиме

Чтобы получить встроенную справку:

help

или

?

Меню помощи sftp в интерактивном терминале

Режимы использования sftp вне интерактива

Sftp можно запускать в пакетном режиме. Это удобно для автоматизации.

Пример: выполнить набор команд из файла batch.txt

sftp -b batch.txt username@host

Формат batch.txt — строки обычных команд (lcd, cd, put, get и т. д.).

Контроль целостности файлов

При передаче больших файлов полезно сверять контрольные суммы. Простой рабочий процесс:

  1. На исходной машине расчитайте sha256sum: sha256sum file > file.sha256
  2. Передайте оба файла через sftp.
  3. На приёмной машине выполните sha256sum -c file.sha256.

Это подтвердит, что файл передан без повреждений.

Мини‑методология: быстрая пошаговая инструкция

  1. Подключитесь через sftp: sftp user@host
  2. Перейдите в нужную удалённую директорию: cd /path
  3. Перейдите в локальную директорию: lcd /local/path
  4. Передайте файлы: put file или mput *.txt
  5. Проверьте целостность (опционально): сравните хэши
  6. Выйдите: bye

Чеклист по ролям

  • Системный администратор:

    • Настроить SSHD с поддержкой SFTP.
    • Включить логирование соединений.
    • Ограничить доступ через брандмауэр по IP/портам.
    • Рассмотреть chroot‑каталоги для пользователей.
  • DevOps / CI-инженер:

    • Использовать ключи SSH для автоматизации.
    • Хранить ключи в защищённом хранилище (vault).
    • Проверять целостность и права на загружаемые артефакты.
  • Разработчик:

    • Работать через lls и lpwd для контроля контекста.
    • Не передавать секреты в открытом виде.
    • Предпочитать scp/sftp с ключами вместо паролей.
  • Пользователь Raspberry Pi:

    • Включить SSH на устройстве.
    • Подключаться с компьютера по sftp user@raspberrypi.local.

Безопасность и жёсткая настройка

  • Предпочитайте аутентификацию по ключу (Public Key) вместо пароля.
  • Отключите вход по паролю в /etc/ssh/sshd_config: PasswordAuthentication no.
  • Используйте ограничение доступа через AllowUsers/AllowGroups.
  • Включите chroot для пользователей, которым нужен только SFTP-доступ.
  • Ограничьте используемые алгоритмы шифрования актуальными наборами в настройках SSH.
  • Включите логирование и мониторинг попыток доступа.

Важно: любые изменения в sshd_config требуют перезапуска службы и проверки доступности.

Совместимость и альтернативы

  • Клиенты: OpenSSH sftp на Linux/macOS, WinSCP и PuTTY (psftp) на Windows.
  • Серверы: OpenSSH (распространён), коммерческие SFTP-серверы с web-интерфейсом.
  • Альтернативы для передачи файлов: rsync (эффективный при синхронизации), scp (простая копия по SSH), FTP/FTPS (если требуется совместимость со старыми системами).

Совет: для массовых синхронизаций выбирайте rsync; для одноразовых ручных переносов — sftp.

Критерии приёмки

  • Установлено соединение и получен промпт sftp>.
  • Файлы находятся в целевой директории на сервере/локальной машине.
  • Контрольные суммы совпадают (если проверка применялась).
  • Права доступа установлены согласно политике безопасности.

Частые ошибки и как их исправить

  • Ошибка: Connection refused — проверьте, запущен ли SSHD и открыт ли порт 22.
  • Ошибка: Permission denied — проверьте права и аутентификацию (ключи/пароли).
  • Проблемы с путями — используйте lcd и lpwd для локального контекста, cd и pwd для удалённого.

Таблица команд‑шпаргалка

ДействиеКоманда
Подключитьсяsftp user@host
Список на сервереls
Список локальноlls
Текущая серверная папкаpwd
Текущая локальная папкаlpwd
Загрузить файлput file
Загрузить каталогput -r dir
Загрузить маску файловmput *.txt
Скачивать файлget file
Скачивать маску файловmget *.html
Изменить праваchmod 644 file
Выйтиbye
Справкаhelp или ?

Когда sftp не подходит

  • Если требуется высокая производительность при одном TCP‑соединении и минимальная задержка — лучше рассмотреть другие решения, например специализированные ускорители передач или параллельные загрузчики.
  • Для шаринга больших объёмов данных с браузерным интерфейсом удобнее использовать HTTPS‑доступ к объектному хранилищу.

Короткое резюме

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

Важно: sftp — часть набора OpenSSH. Для интеграции в пайплайны используйте пакетный режим и безопасные ключи.

Дополнительные ресурсы: документация OpenSSH, руководства по настройке sshd_config и статьи по chroot для SFTP.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Spatialize Stereo на AirPods — 3D‑звук на iPhone и Mac
Аудио

Spatialize Stereo на AirPods — 3D‑звук на iPhone и Mac

Как подключить Bluetooth‑наушники к Windows
How-to

Как подключить Bluetooth‑наушники к Windows

Добавление подарочной карты Amazon
How-to

Добавление подарочной карты Amazon

Как стать лучше в соревновательных играх
Гейминг

Как стать лучше в соревновательных играх

MySQL на Ubuntu 18.04 — установка и настройка
Базы данных

MySQL на Ubuntu 18.04 — установка и настройка

Как безопасно использовать старые ПК с Windows XP и Vista
Техника

Как безопасно использовать старые ПК с Windows XP и Vista