BLACKBOXЦентр помощи

Передача файлов на сервер (scp, rsync, SFTP)

Как копировать файлы между компьютером и сервером с помощью scp, rsync или графического SFTP-клиента (FileZilla, WinSCP).

общееОбновлено 2026-10-09~9 мин чтения
На этой странице

Файлы передаются на сервер и обратно тоже по SSH, с теми же данными, что и при подключении: IP-адрес, пользователь root, порт 22 и пароль или SSH-ключ. IP-адрес указан в панели app.blackbox.md, в разделе «Мои серверы» (app.blackbox.md/my-servers; с blackbox.md: «Личный кабинет» → «Панель управления» → «Мои серверы»), в поле «IP» на карточке сервера.

Доступно: владельцу аккаунта blackbox.md с активным сервером и учётными данными root (паролем или SSH-ключом): Подключение к серверу по SSH (Windows, macOS, Linux). Для выделенных серверов данные для доступа вы согласуете с командой.

Какой инструмент выбрать

Инструмент Для чего подходит Системы
scp разово скопировать файл или папку macOS, Linux, Windows 10 и 11
rsync большие папки, регулярное копирование, продолжение после обрыва macOS, Linux; Windows через WSL
sftp сеанс, в котором вы перемещаетесь по папкам сервера macOS, Linux, Windows 10 и 11
FileZilla, WinSCP работа мышью, без команд FileZilla: все; WinSCP: Windows

Все они работают через SSH, поэтому данные передаются в зашифрованном виде. Команды scp, sftp и rsync выполняются на вашем компьютере, а не на сервере. Вместо IP_СЕРВЕРА подставьте адрес своего сервера.

scp: быстрое копирование

scp уже есть в macOS и Linux. В Windows 10 и 11 он входит в клиент OpenSSH вместе с ssh и sftp: запускайте его в PowerShell, синтаксис тот же.

Загрузите файл в /root на сервере:

scp backup.zip root@IP_СЕРВЕРА:/root/

Папка назначения должна существовать до копирования. На новом сервере без веб-сервера нет даже /var/www; создайте её со своего компьютера:

ssh root@IP_СЕРВЕРА "mkdir -p /var/www/site"

Загрузите папку с параметром -r (на сервере появится /var/www/site):

scp -r site root@IP_СЕРВЕРА:/var/www/

Скачайте файл в текущую папку (точка в конце) и папку целиком:

scp root@IP_СЕРВЕРА:/root/backup.tar.gz .
scp -r root@IP_СЕРВЕРА:/var/www/site ./site-backup

Нужный ключ указывается через -i. Если SSH работает на порту, отличном от 22 (например, на сервере другого провайдера; серверы BLACKBOX используют порт 22), добавьте -P — заглавной буквой, в отличие от ssh -p:

scp -i ~/.ssh/id_ed25519 -P ПОРТ backup.zip root@IP_СЕРВЕРА:/root/

В PowerShell локальные пути записываются как обычно в Windows:

scp -r C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\Documents\site root@IP_СЕРВЕРА:/var/www/

sftp: интерактивный сеанс

Параметры -i и -P работают так же, как у scp.

sftp root@IP_СЕРВЕРА
Команда в приглашении sftp> Что делает
ls, cd /var/www/site показывает содержимое и меняет папку на сервере
lls, lcd site то же самое на вашем компьютере
put index.html, put -r assets загружает файл или папку
get config.php, get -r uploads скачивает файл или папку
exit завершает сеанс

rsync: лучший выбор для больших папок и регулярного копирования

rsync копирует только разницу: при повторном запуске передаются лишь новые и изменённые файлы, а прерванное копирование можно продолжить. Он должен быть установлен с обеих сторон. В macOS он уже есть, в Linux его при необходимости ставят из менеджера пакетов, а в Windows запускают из WSL (Windows Subsystem for Linux); без WSL используйте scp или WinSCP. Если на сервере его нет, установите:

Ubuntu и Debian:

apt update
apt install -y rsync

AlmaLinux и CentOS Stream:

dnf install -y rsync

Загрузите содержимое локальной папки site в /var/www/site:

rsync -avz --progress site/ root@IP_СЕРВЕРА:/var/www/site/
Параметр Что делает
-a копирует рекурсивно, сохраняя права доступа, время изменения и символические ссылки
-v, --progress показывает файлы и ход копирования
-z сжимает данные при передаче; помогает для текста, но не для архивов, изображений и видео
--partial сохраняет недокачанный файл, чтобы следующий запуск продолжил с места остановки
-P --partial --progress (у scp -P — это порт)
-n пробный запуск (--dry-run): показывает, что будет сделано, ничего не меняя
--delete удаляет в месте назначения файлы, которых больше нет в источнике

Косая черта в конце источника важна: site/ копирует содержимое папки, а site создаёт ещё один уровень — /var/www/site/site.

Большой файл с докачкой (если связь оборвётся, запустите ту же команду ещё раз):

rsync -avP backup.tar.gz root@IP_СЕРВЕРА:/root/

Скачайте папку с сервера:

rsync -avz --progress root@IP_СЕРВЕРА:/var/www/site/ ./site-backup/

Другой порт или нужный ключ задаются через -e:

rsync -avz --progress -e "ssh -p ПОРТ -i ~/.ssh/id_ed25519" site/ root@IP_СЕРВЕРА:/var/www/site/

Точная копия с --delete

Чтобы файлы, удалённые у вас, исчезали и с сервера, добавьте --delete. Сначала выполните пробный запуск с -n: строки deleting … — это файлы, которые будут удалены.

rsync -avzn --delete site/ root@IP_СЕРВЕРА:/var/www/site/

Если список верный, выполните ту же команду без n:

rsync -avz --delete site/ root@IP_СЕРВЕРА:/var/www/site/

Опасно С --delete ошибка в пути (пропущенная косая черта, перепутанные источник и назначение, пустая локальная папка) может удалить файлы на сервере, а BLACKBOX не делает автоматических резервных копий вашего сервера. Сначала запускайте с -n и заранее сделайте копию: Стратегия резервного копирования для вашего сервера.

FileZilla (Windows, macOS, Linux)

FileZilla Client — бесплатная программа: официальный сайт FileZilla. Названия ниже приведены по английскому интерфейсу; в русском или румынском они переведены.

  1. Откройте «File» → «Site Manager...» и нажмите «New site».
  2. Заполните поля:
    • «Protocol» — «SFTP - SSH File Transfer Protocol» (не «FTP»);
    • «Host» — IP-адрес; «Port» — 22; «User» — root;
    • «Logon Type» — «Normal» с паролем root в поле «Password» или «Key file» с приватным ключом, выбранным через «Browse...» (.ppk или ключ OpenSSH, например id_ed25519). В macOS папка .ssh скрыта: в окне выбора файла нажмите Cmd + Shift + G и введите ~/.ssh. Если FileZilla предложит преобразовать ключ, согласитесь.
  3. Нажмите «Connect».
  4. При первом подключении появится «Unknown host key»: отметьте «Always trust this host, add this key to the cache» и нажмите «OK».
  5. Перетаскивайте файлы между левой панелью (компьютер) и правой (сервер).

Ключ можно добавить один раз для всех SFTP-подключений: «Edit» → «Settings...» (в macOS: «FileZilla» → «Settings...») → «Connection» → «SFTP» → «Add key file...».

В панели «Quickconnect» укажите в поле «Host» sftp://IP_СЕРВЕРА или в поле «Port» — 22. Иначе FileZilla попробует подключиться по FTP, и подключение не удастся.

WinSCP (Windows)

WinSCP — бесплатная программа: официальный сайт WinSCP. Названия ниже тоже приведены по английскому интерфейсу. При запуске открывается окно «Login».

  1. Выберите «New Site» и заполните поля: «File protocol» — «SFTP»; «Host name» — IP-адрес; «Port number» — 22; «User name» — root; «Password» — пароль root (на сервере «Пароль + ключ»).
  2. Для входа по ключу: «Advanced...» → «SSH» → «Authentication» → «Private key file» — выберите файл .ppk, который вы используете в PuTTY. Если выбрать ключ OpenSSH, WinSCP предложит преобразовать его в .ppk — согласитесь. Нажмите «OK».
  3. Нажмите «Save», затем «Login».
  4. При первом подключении подтвердите ключ сервера кнопкой «Accept» (в старых версиях — «Yes»).
  5. Перетаскивайте файлы между левой панелью (компьютер) и правой (сервер).

Серверы «Только ключ»

На сервере со значком «Только ключ» (на карточке в разделе «Мои серверы») пароль root по SSH не работает, а значит, не работает и в scp, sftp, rsync, FileZilla и WinSCP. Настройте ключ в клиенте:

  • scp, sftp и rsync сами пробуют стандартные ключи из ~/.ssh (например, id_ed25519); другой ключ укажите через -i (для rsync — внутри -e);
  • FileZilla: «Logon Type» — «Key file» или ключ из «Settings»; WinSCP: «Private key file».

Без нужного ключа появляется Permission denied (publickey), а в FileZilla и WinSCP — No supported authentication methods available (server sent: publickey). Ключ нового компьютера добавьте кнопкой «Добавить SSH-ключ»: Добавление и удаление SSH-ключей на сервере. Вход по паролю снова включается кнопкой «Включить вход по паролю»: Включение и отключение входа по паролю по SSH.

После загрузки сайта: владелец и права доступа

Файлы, загруженные под root, принадлежат root (а rsync -a даже сохраняет ID пользователя с вашего компьютера). Веб-сервер должен их читать, а приложение — записывать в свои папки (загрузки, кеш). Сделайте владельцем пользователя, от имени которого работает веб-сервер или PHP-FPM:

Система nginx Apache PHP-FPM (по умолчанию)
Ubuntu, Debian www-data www-data www-data
AlmaLinux, CentOS Stream nginx apache apache

Фактический пользователь виден в строках, которые не начинаются с root:

ps -eo user,comm | grep -E 'nginx|apache2|httpd|php-fpm'

Ubuntu и Debian

chown -R www-data:www-data /var/www/site
find /var/www/site -type d -exec chmod 755 {} +
find /var/www/site -type f -exec chmod 644 {} +

AlmaLinux и CentOS Stream

Те же команды, но с пользователем из таблицы (например, nginx:nginx или apache:apache). Кроме того, здесь по умолчанию включён SELinux, который проверяет метку каждого файла. У файлов может оказаться неверная метка (например, файлы, перенесённые командой mv из /root, сохраняют старую), и тогда сайт отвечает 403 Forbidden. После загрузки восстановите метки:

restorecon -Rv /var/www/site

Чтобы приложение могло записывать в папку (например, uploads), SELinux требует для неё отдельную метку. Подставьте путь к своей папке:

dnf install -y policycoreutils-python-utils
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/site/uploads(/.*)?"
restorecon -Rv /var/www/site

Установка веб-сервера: Веб-сервер с HTTPS: nginx или Apache и Let's Encrypt.

Долгие передачи: tmux или screen

Если копирование rsync с вашего компьютера оборвалось, запустите ту же команду с -P ещё раз: rsync продолжит с того места, где остановился. Когда вы копируете между двумя серверами (например, со старого хостинга на новый сервер), запускайте копирование на сервере внутри сеанса tmux: если SSH-соединение оборвётся, копирование продолжится.

Установите tmux, если его нет. Ubuntu и Debian:

apt update
apt install -y tmux

AlmaLinux и CentOS Stream (в стандартных репозиториях этих систем пакета screen нет):

dnf install -y tmux
Действие tmux screen
начать сеанс tmux new -s transfer screen -S transfer
выйти, не останавливая его Ctrl + B, затем D Ctrl + A, затем D
вернуться после переподключения tmux attach -t transfer screen -r transfer

Пример: команда ниже, запущенная в сеансе на новом сервере, забирает сайт со старого сервера. Будет запрошен пароль root старого сервера; если туда вы входите по ключу, следуйте руководству по переносу ниже.

rsync -avzP root@IP_СТАРОГО_СЕРВЕРА:/var/www/site/ /var/www/site/

Полный перенос: Перенос сайта на сервер BLACKBOX.

Почему SFTP, а не FTP

  • На VPS, для которых вы выбираете операционную систему при заказе, FTP-сервер не установлен. SFTP работает сразу — через SSH, с учётными данными root.
  • FTP передаёт пароль и файлы в открытом виде, SFTP их шифрует. Не путайте SFTP с FTPS («FTP over TLS»): для FTPS нужен FTP-сервер.
  • Сетевая фильтрация, которой управляет BLACKBOX, по умолчанию пропускает только SSH (22), HTTP (80), HTTPS (443) и ping. Порты FTP-сервера, установленного вами, без запроса в поддержку будут недоступны из интернета: Файрвол: сетевая фильтрация и ufw/firewalld на сервере.
  • На тарифах «VPS hosting» уточните в поддержке, есть ли FTP в панели управления на сервере: Тарифы «VPS hosting» с панелью управления.

Частые ошибки

Сообщение Вероятная причина Что делать
Permission denied (publickey) или No supported authentication methods available (server sent: publickey) сервер «Только ключ», а ключ не настроен в клиенте или не установлен на сервере укажите ключ (-i, «Key file», «Private key file») или добавьте его кнопкой «Добавить SSH-ключ»
Permission denied, please try again. (FileZilla: Authentication failed.) неверный пароль скопируйте пароль через «Показать учётные данные»: Просмотр учётных данных root
FileZilla: Could not connect to server, в журнале порт 21 выбран протокол FTP выберите «SFTP - SSH File Transfer Protocol» и порт 22
rsync: command not found rsync не установлен на сервере или на компьютере установите его
No space left on device диск сервера заполнен Диск сервера заполнен
No such file or directory при загрузке папки назначения нет на сервере создайте её, как в разделе о scp
после загрузки сайт отвечает 403 Forbidden неверный владелец, права доступа или метки SELinux см. раздел о владельце и правах доступа

Другие проблемы с подключением: Не удаётся подключиться по SSH.

Частые вопросы

Куда загружать файлы сайта? В папку, указанную в настройках веб-сервера (директива root у nginx, DocumentRoot у Apache), — обычно где-то в /var/www/.

Много мелких файлов копируются очень долго. Что делать? Упакуйте папку в архив на компьютере, скопируйте его в /root/ через scp и распакуйте на сервере. Сначала на компьютере, затем на сервере:

tar czf site.tar.gz site
tar xzf /root/site.tar.gz -C /var/www/

Как скачать свои данные перед удалением сервера? С помощью rsync или scp -r в обратную сторону — с сервера на компьютер, для каждой важной папки. Базы данных сначала выгрузите в файл (дамп). Что стоит сохранить: Стратегия резервного копирования для вашего сервера.

Не нашли ответ?Напишите нам — служба поддержки ответит. support@blackbox.md
Открыть тикет