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 поддерживает два основных режима работы:
- Интерактивный режим — пользователь вводит команды по одной, получая немедленный ответ от сервера. Подходит для ручного управления файлами.
- Пакетный (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 →