Определение простыми словами
SFTP (SSH File Transfer Protocol) — расширение протокола SSH для работы с файлами. В отличие от классического FTP, который ходит по двум соединениям (управляющему и данным) и передаёт пароли в открытом виде, SFTP работает в одном зашифрованном канале и использует те же ключи и пароли, что и SSH.
Никаких отдельных демонов запускать не нужно: если на VPS работает sshd, то SFTP уже доступен. На виртуальном хостинге сайтов SFTP заменил небезопасный FTP практически у всех серьёзных провайдеров.
Сравнение
| Параметр | SFTP | FTP | FTPS |
|---|---|---|---|
| Шифрование | SSH (AES-256) | нет | TLS |
| Порт | 22 | 21 + динамический | 21, 990 |
| NAT/файрвол | работает легко | сложно (PASV) | сложно |
| Аутентификация | пароль + ключ SSH | пароль | пароль + сертификат |
Кейсы использования
- Загрузка файлов сайта на сервер из IDE (PhpStorm, VS Code) с автосинхронизацией.
- Передача бэкапов между серверами по cron-скрипту с авторизацией по ключу.
- Доступ для подрядчиков с ограничением только на каталог сайта через ChrootDirectory.
- Альтернатива S3 для команд, которые привыкли к иерархии папок.
- Негативный сценарий: публичная отдача файлов посетителям сайта — для этого нужен HTTPS-сервер, не SFTP.
Технические детали
Базовые команды клиента sftp и ограничение пользователя своим каталогом:
sftp -i ~/.ssh/id_ed25519 user@host
put -r ./build /var/www/site
get /var/log/nginx/access.log
bye
sudo groupadd sftponly
sudo useradd -g sftponly -s /sbin/nologin -d /var/www/site clientuser
sudo passwd clientuser
В /etc/ssh/sshd_config добавьте блок Match Group sftponly с ChrootDirectory %h, ForceCommand internal-sftp и AllowTcpForwarding no — пользователь не сможет выйти за пределы своей домашней директории.
🔥 Где это применяется
Частые вопросы
Чем SFTP отличается от FTPS?
SFTP работает поверх SSH в одном порту (22), FTPS — это классический FTP с TLS-шифрованием на портах 21/990 и двумя соединениями. SFTP проще проходит файрволы и не требует отдельной настройки сертификатов.
Можно ли подключиться через SFTP к виртуальному хостингу?
Да, у большинства провайдеров SFTP доступен по тем же логину и паролю, что и хостинг-панель. Используйте FileZilla, WinSCP, Cyberduck или встроенные средства IDE.
SFTP и SCP — это одно и то же?
Нет. SCP — простой протокол копирования по SSH, без интерактивного режима и операций над файлами. SFTP полноценный: list, rename, delete, chmod, докачка прерванных передач.