Назад до блогу
Травень 23, 2026Посібники

Як налаштувати SFTP для безпечної передачі файлів

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

Як налаштувати SFTP для безпечної передачі файлів

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

SFTP з окремим користувачем

Створіть користувача лише для завантаження файлів:

bash
sudo adduser sftpuser
sudo passwd sftpuser

# Test SFTP from client:
sftp sftpuser@YOUR_VPS_IP

# Or use FileZilla: Protocol SFTP, port 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

# Add at end:
Match User sftpuser
    ChrootDirectory /var/sftp/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

sudo systemctl restart sshd

Підключення з комп’ютера

Популярні клієнти підтримують SFTP:

  • FileZilla — Host: sftp://YOUR_VPS_IP, Port: 22, Logon Type: Normal
  • WinSCP — Protocol: SFTP
  • macOS Finder — Connect to Server: sftp://user@IP
  • Linux: sftp user@IP or scp file user@IP:/path/
  • VS Code — Remote SSH extension for direct editing

Безпека

  • SSH-ключі замість паролів для SFTP
  • Не надавайте root по SFTP третім особам
  • Вимкніть вхід по паролю для root у sshd_config
  • Для облікових записів «лише завантаження» використовуйте chroot, як у прикладі
  • Встановіть Fail2ban на SSH
  • За можливості дозвольте порт 22 у брандмауері лише з ваших IP

Поради

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