SFTP Neo

Расширение для Visual Studio Code, позволяющее синхронизировать код с удалённым сервером по SFTP или FTP без выхода из редактора. Поддерживает автоматическую загрузку при сохранении, просмотр и управление файлами на сервере, резервное копирование и SSH-терминал.

Категория: Метки: ,

SFTP Neo — это форк и современная переработка расширения vscode-sftp, изначально созданного liximomo и позже поддерживаемого Natizyskunk. Расширение обновлено для полной совместимости с актуальными API Visual Studio Code, включает исправленные зависимости и ряд новых возможностей.

Назначение и сценарии использования

Расширение предназначено для разработчиков, которым необходимо синхронизировать локальный код с удалённым сервером по протоколам SFTP или FTP, не покидая редактор. Типичные сценарии:

  • Разработка сайтов или веб-приложений с автоматической выгрузкой изменений на тестовый или продакшен-сервер.
  • Управление файлами на удалённом сервере: просмотр, переименование, перемещение и удаление прямо из боковой панели VS Code.
  • Работа с несколькими окружениями (dev, staging, prod) через переключение профилей.
  • Синхронизация проектов, в которых часть файлов генерируется вне редактора (например, сборщиками или AI-инструментами), с выборочной автоматической загрузкой.
  • Безопасное подключение к внутренним серверам через промежуточные хосты (SSH hopping).

Составляющие и особенности

Управление удалёнными файлами

  • Remote Explorer — древовидный просмотр файловой структуры сервера с возможностью фильтрации.
  • Переименование и перемещение на сервере — операции выполняются одной командой без повторной загрузки содержимого.
  • Перетаскивание — опциональное изменение структуры папок прямо в Remote Explorer.
  • Удаление с резервным копированием — при включённой опции backup.onDelete перед удалением создаётся копия, которую можно восстановить из панели Backups.

Синхронизация и автоматизация

  • Загрузка при сохранении (uploadOnSave) и файловый наблюдатель (watcher.autoUpload) — могут работать вместе без дублирования операций.
  • Автоматическое переименование — при переименовании файла в редакторе расширение выполняет серверное переименование вместо удаления и повторной загрузки.
  • Синхронизация директорий — двусторонняя или односторонняя с настраиваемыми правилами (пропуск, обновление, удаление).
  • Профили — позволяют задать разные серверы и параметры (например, включить авто-загрузку только для dev-окружения).

Безопасность и хранение данных

  • Пароли и passphrase для SSH-ключей не сохраняются в sftp.json — они либо запрашиваются при подключении, либо помещаются в системную связку ключей (OS keychain).
  • Поддержка SSH-агента, интерактивной аутентификации и пользовательского sshConfigPath.
  • Возможность задать отдельные known-host записи для каждого workspace.

Дополнительные инструменты

  • SSH-терминал — можно открыть сессию прямо из боковой панели.
  • Резервное копирование — перед каждой загрузкой или синхронизацией сохраняется версия файла с меткой времени (локально или на сервере). Количество хранимых версий настраивается.
  • Хуки — выполнение произвольных команд до и после загрузки, скачивания или синхронизации.

Конфигурация

Все параметры задаются в файле .vscode/sftp.json. Допускается массив объектов для синхронизации разных частей проекта с разными серверами. Поддерживаются FTP-опции (secure, passive) и SFTP-специфичные (algorithms, hop для прыжков через bastion-хост).

Кому полезно

Расширение ориентировано на веб-разработчиков, DevOps-инженеров и всех, кто регулярно работает с удалёнными серверами через SFTP/FTP и предпочитает оставаться в среде VS Code. Особенно актуально для тех, кто использует несколько окружений, нуждается в автоматической синхронизации при сохранении или внешних изменениях, а также ценит возможность быстрого просмотра и правки файлов на сервере без отдельных клиентов.

Ограничения

  • Файл конфигурации sftp.json использует строгий JSON — комментарии не поддерживаются.
  • Резервное копирование по умолчанию отключено; для его работы требуется явно задать backup.enabled: true.
  • Хранение паролей в открытом виде внутри конфигурационного файла не рекомендуется — расширение выводит предупреждение и предлагает сохранить пароль в системной связке ключей.
  • Некоторые функции (например, перетаскивание в Remote Explorer, автоматическое переименование) требуют явного включения в настройках.
  • Расширение работает только с протоколами SFTP и FTP; другие протоколы передачи файлов не поддерживаются.