Назад к блогу
23 мая 2026Руководства

Как настроить SFTP для безопасной передачи файлов

Передача файлов по SFTP через OpenSSH: отдельные пользователи, изоляция каталога, подключение из FileZilla и WinSCP.

Как настроить SFTP для безопасной передачи файлов

SFTP передаёт файлы по шифрованному SSH без отдельного FTP-демона. На Linux VPS SFTP встроен в OpenSSH — безопасная настройка на Hiddence.

SFTP с отдельным пользователем

Создайте пользователя только для загрузки файлов:

bash
sudo adduser sftpuser
sudo passwd sftpuser

# Тест:
sftp sftpuser@IP_ВАШЕГО_VPS

# FileZilla: протокол SFTP, порт 22

Изоляция каталога (chroot), рекомендуется

Ограничьте пользователя одной папкой на сервере:

bash
sudo mkdir -p /var/sftp/sftpuser/upload
sudo chown root:root /var/sftp/sftpuser
sudo chmod 755 /var/sftp/sftpuser
sudo chown sftpuser:sftpuser /var/sftp/sftpuser/upload

sudo nano /etc/ssh/sshd_config

Match User sftpuser
    ChrootDirectory /var/sftp/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

sudo systemctl restart sshd

Подключение с компьютера

Популярные клиенты поддерживают SFTP:

  • FileZilla — хост sftp://IP, порт 22
  • WinSCP — протокол SFTP
  • macOS — Подключение к серверу: sftp://user@IP
  • Linux: sftp user@IP или scp
  • VS Code — Remote SSH

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

  • SSH-ключи вместо паролей для SFTP
  • Не давайте root по SFTP третьим лицам
  • Отключите вход по паролю для root (PasswordAuthentication no)
  • Для аккаунтов «только загрузка» используйте chroot, как в примере выше
  • Поставьте Fail2ban на SSH
  • По возможности разрешите порт 22 в брандмауэре только с ваших IP

Советы

  • SFTP — не FTP, порт 21 не нужен
  • Для WordPress удобнее выкладывать файлы по SSH или rsync
  • Копирование через rsync по SSH быстрее для больших сайтов
  • При ошибке загрузки проверьте права 755/644
  • После правок sshd_config держите вторую SSH-сессию открытой