SFTP (Secure File Transfer Protocol) — это утилита для безопасной передачи файлов между локальным и удалённым серверами через зашифрованное соединение на базе протокола SSH. В отличие от традиционного FTP, SFTP шифрует как команды, так и передаваемые данные, что обеспечивает защиту от перехвата и несанкционированного доступа. SFTP часто используется в Linux и Unix-подобных системах, а также может быть доступен в Windows через инструменты вроде PuTTY или OpenSSH.
Синтаксис и опции
Базовый синтаксис команды:
sftp [options] [user@]host
где user — имя пользователя на удалённом сервере, а host — IP-адрес или доменное имя сервера.
Некоторые опции:
-v— повышает уровень отладки (также передаётся в SSH);-b batchfile— пакетный режим: читает команды из файлаbatchfileвместо стандартного ввода. Требует неинтерактивной аутентификации;-s subsystem|sftp_server— указывает подсистему SSH2 или путь к SFTP-серверу на удалённой машине;-C— включает сжатие данных (через флагssh -C);-F ssh_config— задает альтернативный файл конфигурации SSH;-P port— указывает порт для подключения (по умолчанию — 22);-i path_to_key— использует приватный ключ для аутентификации вместо пароля;-R num_requests— задаёт количество одновременных запросов на передачу файлов;-B buffer_size— устанавливает размер буфера для передачи файлов (по умолчанию — 32768 байт).
Пример подключения к серверу с указанием порта:
sftp -oPort=2222 user@host
Пример подключения с использованием приватного ключа:
sftp -i ~/.ssh/id_rsa user@host
Интерактивные команды
После подключения открывается интерактивный режим, где можно вводить команды для управления файлами и каталогами. Команды не чувствительны к регистру букв, а пути с пробелами следует заключать в кавычки.
| Команда | Описание |
|---|---|
bye или exit или quit | Завершить сеанс SFTP. |
cd path | Изменить текущий удалённый каталог на path. |
lcd path | Изменить текущий локальный каталог на path. |
chgrp grp path | Изменить группу файла path на grp (цифровой GID). |
chmod mode path | Изменить права доступа файла path на mode. |
chown own path | Изменить владельца файла path на own (цифровой UID). |
get [flags] remote_path [local_path] | Скачать файл с удалённого сервера. Если local_path не указан, файл сохраняется с тем же именем. Флаг -P копирует полные права доступа и время доступа к файлу. |
put local_path [remote_path] | Загрузить файл на удалённый сервер. |
help или ? | Вывести список доступных команд. |
lls [ls-options [path]] | Отобразить содержимое локального каталога path или текущего локального каталога, если path не указан. |
lmkdir path | Создать локальный каталог path. |
ln oldpath newpath | Создать символическую ссылку от oldpath к newpath. 1 |
lpwd | Вывести текущий локальный рабочий каталог. |
ls [flags] [path] | Отобразить содержимое удалённого каталога path или текущего удалённого каталога, если path не указан. Флаг -l выводит подробную информацию (права доступа, владелец и т. д.), -la — включая скрытые файлы. 7 |
mkdir path | Создать удалённый каталог path. |
pwd | Вывести текущий удалённый рабочий каталог. |
rm path | Удалить файл на удалённом сервере. |
rmdir path | Удалить каталог на удалённом сервере. Каталог должен быть пустым. |
rename oldpath newpath | Переименовать файл или каталог на удалённом сервере. |
symlink oldpath newpath | Создать символическую ссылку на удалённом сервере. |
!command | Выполнить команду command в локальной оболочке. |
! | Переключиться в локальную оболочку. Для возврата в SFTP введите exit. |
Дополнительные возможности
- Массовая передача файлов:
mget *.xls— скачать все файлы с расширением.xlsс удалённого сервера.mput *.txt— загрузить все текстовые файлы из локального каталога на сервер.
- Изменение маски umask для локальных операций:
lumask umask. - Просмотр версии SFTP:
version.
Особенности
- SFTP поддерживает аутентификацию по паролю и с использованием SSH-ключей.
- Для работы с SFTP не требуется отдельный FTP-сервер — достаточно SSH-сервера.
- При необходимости выполнить команду на локальной машине без выхода из SFTP можно использовать префикс
!(например,!lsвыведет содержимое локального каталога).