Открыть сервис

PSFTP

PSFTP — это консольная клиентская программа для передачи файлов по протоколу SFTP (SSH File Transfer Protocol), входящая в состав пакета PuTTY. PSFTP предоставляет пользователю интерфейс командной строки для безопасного копирования, управления и синхронизации файлов на удалённых серверах через зашифрованное SSH-соединение.

История и происхождение

PSFTP был разработан британским программистом Саймоном Тэтхемом (Simon Tatham) в рамках проекта PuTTY — свободного набора утилит для работы с протоколами SSH, Telnet и Rlogin. Первая версия PuTTY вышла в 1999 году, а PSFTP как отдельная утилита была включена в состав пакета вскоре после этого. Основной целью создания PSFTP была необходимость предоставить пользователям Windows простой и безопасный способ передачи файлов по SSH, альтернативный утилите scp, которая на тот момент была менее распространена в Windows-среде.

PSFTP реализует протокол SFTP версии 3, определённый в проекте IETF (Internet Engineering Task Force) как расширение протокола SSH-2. В отличие от более старого протокола FTP, SFTP работает поверх единого зашифрованного SSH-соединения, что исключает передачу паролей и данных в открытом виде.

Функциональные возможности

PSFTP предоставляет набор команд, типичных для файловых менеджеров командной строки, но адаптированных для работы с удалёнными файловыми системами.

Основные команды

  • open — установка соединения с удалённым сервером (например, open user@host).
  • close — завершение текущего соединения.
  • cd — смена рабочего каталога на удалённом сервере.
  • lcd — смена локального рабочего каталога.
  • dir / ls — вывод списка файлов в удалённом каталоге.
  • get — копирование файла с удалённого сервера на локальную машину.
  • put — копирование файла с локальной машины на удалённый сервер.
  • mget — массовое копирование нескольких файлов с удалённого сервера.
  • mput — массовое копирование нескольких файлов на удалённый сервер.
  • rmудаление файла на удалённом сервере.
  • rmdir — удаление пустого каталога на удалённом сервере.
  • mkdir — создание каталога на удалённом сервере.
  • chmod — изменение прав доступа к файлу или каталогу.
  • pwd — вывод текущего рабочего каталога на удалённом сервере.
  • lpwd — вывод текущего локального каталога.
  • quit / exit — завершение работы PSFTP.

Режимы работы

PSFTP поддерживает два основных режима работы:

  1. Интерактивный режим — пользователь вводит команды по одной, получая немедленный ответ от сервера. Подходит для ручного управления файлами.
  2. Пакетный (batch) режим — PSFTP выполняет последовательность команд, записанных в текстовый файл. Для этого используется опция -b (например, psftp -b script.txt user@host). Этот режим удобен для автоматизации задач резервного копирования или синхронизации.

Аутентификация

PSFTP поддерживает все основные методы аутентификации, доступные в SSH-2:

  • Аутентификация по паролю.
  • Аутентификация по открытому ключу (с поддержкой ключей RSA, DSA, ECDSA и Ed25519).
  • Аутентификация через Pageant — агент SSH-ключей, входящий в состав PuTTY.
  • Аутентификация с использованием GSSAPI (Kerberos) в некоторых конфигурациях.

Отличия от других утилит

PSFTP vs PSCP

PSCP — ещё одна утилита из пакета PuTTY, реализующая протокол SCP (Secure Copy). Основные различия:

  • PSCP работает по протоколу SCP, который является частью SSH-1 и SSH-2, но не поддерживает расширенные возможности SFTP, такие как список файлов, смена каталогов или управление правами доступа.
  • PSFTP предоставляет полноценный интерактивный интерфейс для навигации по удалённой файловой системе, в то время как PSCP ориентирован на однократное копирование файлов.
  • PSFTP поддерживает массовые операции (mget, mput) и пакетный режим, что делает его более гибким для автоматизации.

PSFTP vs WinSCP

WinSCP — графический клиент SFTP и FTP для Windows. Основные отличия:

  • PSFTP — консольная утилита, не имеющая графического интерфейса. WinSCP предоставляет оконный интерфейс с перетаскиванием файлов.
  • PSFTP может быть легко встроен в скрипты и пакетные файлы (CMD, PowerShell). WinSCP также поддерживает командную строку, но его основной функционал ориентирован на визуальное использование.
  • PSFTP занимает меньше места и не требует установки — достаточно одного исполняемого файла.

PSFTP vs sftp (OpenSSH)

В Unix-подобных системах (Linux, macOS) стандартным клиентом SFTP является утилита sftp из пакета OpenSSH. PSFTP функционально близок к ней, но имеет ряд отличий:

  • PSFTP использует собственные библиотеки SSH (PuTTY), а не OpenSSH.
  • Команды PSFTP частично отличаются от команд sftp (например, dir вместо ls по умолчанию, хотя ls также поддерживается).
  • PSFTP не поддерживает некоторые расширенные функции sftp, такие как reget (возобновление прерванной загрузки) или symlink.

Использование в автоматизации

PSFTP часто применяется в сценариях автоматизации на Windows, где требуется безопасная передача файлов по SSH. Типичные случаи:

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

Пример пакетного скрипта (файл backup.txt):

`` open user@backup.example.com cd /var/backups lcd C:\backups get database.sql quit ``

Запуск: psftp -b backup.txt

Безопасность

PSFTP наследует все механизмы безопасности SSH-2:

  • Шифрование всего трафика (AES, ChaCha20, 3DES и другие алгоритмы).
  • Аутентификация сервера по ключу хоста (host key).
  • Защита от атак «человек посередине» (MITM) при правильной проверке ключа сервера.

Однако PSFTP не поддерживает протокол SFTP версии 4 и выше, что ограничивает использование некоторых расширенных функций, таких как блокировка файлов или расширенные атрибуты.

Критика и ограничения

  • Отсутствие графического интерфейса — для пользователей, привыкших к визуальным менеджерам, PSFTP может показаться неудобным.
  • Ограниченная поддержка Unicode — в некоторых версиях PSFTP наблюдаются проблемы с именами файлов, содержащими символы национальных алфавитов (например, кириллицу).
  • Отсутствие возобновления прерванных передач — при обрыве соединения передача файла начинается заново.
  • Устаревший интерфейс команд — некоторые команды (например, ! для выполнения локальных команд) не поддерживаются.

Распространение и лицензия

PSFTP распространяется в составе пакета PuTTY под лицензией MIT. Это означает, что утилита может свободно использоваться, копироваться и модифицироваться. PuTTY доступен для скачивания с официального сайта проекта (chiark.greenend.org.uk/~sgtatham/putty/). PSFTP работает на операционных системах Windows (32- и 64-разрядные версии), а также может быть скомпилирован для Unix-подобных систем.

Источники

  • Tatham, S. (2023). PuTTY User Manual. Часть «Using PSFTP».
  • IETF. (2006). SSH File Transfer Protocol (SFTP) — Draft-ietf-secsh-filexfer-13.
  • PuTTY: A Free Telnet/SSH Client. Официальный сайт проекта.
  • Документация OpenSSH: sftp(1) — Linux man page.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →