Русский (Russian)

Передача файлов на Linux VPS через FileZilla (SFTP)

3 min
VPS/VDS-хостинг

SFTP работает внутри существующего SSH-соединения, поэтому не требует ни дополнительного серверного ПО, ни нового порта. На VPS Linux Infrawire это самый безопасный способ загрузить сайт или забрать резервные копии через графический клиент вроде FileZilla. В руководстве: вход по паролю и по ключу, права на файлы и пользователь, ограниченный только SFTP.

📋 Требования

  • Linux VPS (Ubuntu 24.04, Debian 12, AlmaLinux 9 или Rocky 9) с работающим SSH на порту 22.
  • IP-адрес VPS и пароль root из личного кабинета.
  • FileZilla Client на вашем компьютере (именно Client, а не FileZilla Server).

1. Быстрое подключение по паролю

Для первой проверки используйте панель быстрого соединения в верхней части FileZilla:

  • Хост: sftp://VPS_IP
  • Имя пользователя: USER
  • Пароль: ваш пароль
  • Порт: 22

При первом подключении подтвердите ключ хоста. Правая панель показывает дерево файлов сервера. Лучше работать под обычным пользователем, а не под root: ошибочный клик принесёт меньше вреда.

Bash
adduser USER usermod -aG sudo USER

На AlmaLinux или Rocky используйте useradd -m USER, passwd USER и usermod -aG wheel USER.

2. Вход по SSH-ключу

Ключи безопаснее паролей и не подбираются перебором. На своём компьютере создайте пару ключей и скопируйте открытую часть на сервер.

Bash
ssh-keygen -t ed25519 -C "filezilla" ssh-copy-id USER@VPS_IP

В FileZilla откройте Правка > Настройки > Соединение > SFTP > Добавить файл ключа и выберите закрытый ключ (файл без .pub). FileZilla может предложить преобразовать его в свой формат; согласитесь. Никогда не передавайте закрытый ключ.

3. Сохранение подключения в Менеджере сайтов

  1. Откройте Файл > Менеджер сайтов и нажмите Новый сайт.
  2. Протокол: SFTP - SSH File Transfer Protocol.
  3. Хост: VPS_IP, Порт: 22.
  4. Тип входа: Нормальный для пароля или Файл ключа для ключа.
  5. Пользователь: USER. На вкладке «Дополнительно» задайте удалённый каталог по умолчанию, например /var/www/example.com.
  6. Нажмите Соединиться. Сайт сохранится для следующего раза.

Не сохраняйте пароли на компьютере, который вы не контролируете.

4. Владелец и права на файлы сайта

Загруженные файлы часто получают неверного владельца, отсюда ошибки 403 или 500. Передайте веб-каталог своему пользователю и дайте веб-серверу право его читать.

Bash
mkdir -p /var/www/example.com chown -R USER:www-data /var/www/example.com find /var/www/example.com -type d -exec chmod 755 {} \; find /var/www/example.com -type f -exec chmod 644 {} \;

На AlmaLinux и Rocky группа веб-сервера называется apache, а не www-data. Каталоги, в которые приложение должно писать (загрузки, кэш), можно выставить в 775 с группой веб-сервера в качестве группы-владельца. Никогда не используйте chmod -R 777. В FileZilla также можно щёлкнуть файл правой кнопкой и выбрать Права доступа к файлу.

5. Необязательно: пользователь только для SFTP в изолированном каталоге

Чтобы дать клиенту доступ лишь к одной папке без оболочки, используйте chroot. Сам каталог chroot должен принадлежать root и не быть доступным для записи другим, иначе sshd отклонит вход.

Bash
groupadd sftpusers useradd -M -d /files -s /usr/sbin/nologin -G sftpusers CLIENT passwd CLIENT mkdir -p /var/sftp/CLIENT/files chown root:root /var/sftp/CLIENT chmod 755 /var/sftp/CLIENT chown CLIENT:CLIENT /var/sftp/CLIENT/files

Добавьте этот блок в конец /etc/ssh/sshd_config:

INI
1Match Group sftpusers 2 ChrootDirectory /var/sftp/%u 3 ForceCommand internal-sftp 4 AllowTcpForwarding no 5 X11Forwarding no

Проверьте синтаксис перед перезагрузкой и не закрывайте текущую SSH-сессию, пока не убедитесь, что новый вход работает.

Bash
sshd -t systemctl reload ssh

Служба называется ssh в Ubuntu и Debian и sshd в AlmaLinux и Rocky. Ограниченный пользователь попадает в /files и больше ничего не видит.

Проверка

Проверьте из терминала, прежде чем винить FileZilla:

Bash
sftp USER@VPS_IP sftp> pwd sftp> put test.txt sftp> ls -l

Затем загрузите файл через FileZilla и проверьте владельца командой ls -l /var/www/example.com.

Устранение неполадок

  • Соединение отклонено или истекло время ожидания: проверьте, что sshd запущен (systemctl status ssh), порт открыт в брандмауэре и выбран именно SFTP, а не FTP.
  • Permission denied (publickey): ключа нет в ~/.ssh/authorized_keys или неверные права. Исправьте: chmod 700 ~/.ssh и chmod 600 ~/.ssh/authorized_keys.
  • Chroot-пользователя отключает сразу после входа: каталог chroot не принадлежит root или доступен группе для записи. Ищите «bad ownership or modes for chroot directory» в journalctl -u ssh.
  • Не загружается, отказано в доступе к папке: пользователь не владеет целевым каталогом. Повторите команды chown и chmod из шага 4.

✅ Теперь вы можете безопасно передавать файлы на свой Linux VPS через FileZilla.

Следите за последними предложениями, скидками и специальными акциями.

Смотреть акции

Мы используем файлы cookie

Аналитические cookie улучшают работу сайта. Данные не продаются третьим лицам. Подробнее в политике конфиденциальности.