Справочник

Команда scp: как скопировать файлы на сервер и обратно

scp копирует файлы между вашим компьютером и сервером по SSH — тем же входом, тем же паролем или ключом. Команду набирают на своём компьютере, а не на сервере. Ниже — как отправить и скачать файл и папку и как исправить ошибки.

Обновлено 11.10.2026≈ 6 мин чтения
Содержание 8

Что сделать прямо сейчас

  1. Откройте терминал на своём компьютере: в Windows — PowerShell, на Mac — Терминал. Как это сделать — в статье Как открыть терминал. К серверу подключаться не нужно.
  2. Перейдите в папку с файлом командой cd, например cd Desktop, если файл лежит на рабочем столе.
  3. Отправьте файл в домашнюю папку на сервере: scp site.zip ivan@ВАШ_IP:/home/ivan/. Вместо ivan — ваш пользователь на сервере, вместо ВАШ_IP — адрес сервера из панели провайдера.
  4. Введите пароль пользователя на сервере, если scp его спросит. Символы при вводе не видны — так и должно быть.
  5. Дождитесь строки со 100% — файл на сервере.

Как устроена команда

scp site.zip ivan@ВАШ_IP:/home/ivan/
ЧастьЧто значит
scpкоманда
site.zipчто копировать — файл на вашем компьютере
ivan@ВАШ_IPпользователь и адрес сервера, как при входе по SSH
:двоеточие отделяет сервер от пути на нём — без него scp скопирует файл на вашем же компьютере
/home/ivan/куда положить файл на сервере

Первым пишут, откуда копировать, вторым — куда. Путь после двоеточия, который начинается не с /, считается от домашней папки пользователя: ivan@ВАШ_IP: без пути — это и есть домашняя папка.

Отправить и скачать

ЗадачаКоманда
Отправить файл на серверscp site.zip ivan@ВАШ_IP:/home/ivan/
Отправить папкуscp -r site ivan@ВАШ_IP:/home/ivan/
Отправить несколько файловscp a.txt b.txt ivan@ВАШ_IP:/home/ivan/
Скачать файл в текущую папкуscp ivan@ВАШ_IP:/home/ivan/backup.tar.gz .
Скачать папкуscp -r ivan@ВАШ_IP:/home/ivan/backup .

Точка в конце команды скачивания — текущая папка на вашем компьютере. Вместо неё можно указать другую, например Desktop.

Ключи scp

КлючЧто делает
-rкопировать папку со всем содержимым
-P 2222порт SSH, если он не 22 — большая буква P
-pсохранить у файлов время изменения и права — маленькая p
-i ~/.ssh/id_ed25519войти по этому ключу
-Cсжимать данные при передаче
-l 8000ограничить скорость: число — в килобитах в секунду
-qне показывать строку с процентами
-vподробно писать, что происходит, — для поиска ошибки

Ключи пишут сразу после scp, до файлов: scp -r -P 2222 site ivan@ВАШ_IP:/home/ivan/.

Если вы завели файл config, вместо ivan@ВАШ_IP хватит короткого имени: scp site.zip myvps:/home/ivan/. Как его завести — в инструкции по SSH, раздел «Короткое имя вместо IP: файл config».

Как положить файлы в папку сайта

Папка сайта /var/www/example.com принадлежит другому пользователю — root или www-data, если владельца не меняли, — и ваш пользователь писать в неё не может. Поэтому сначала отправьте файл в домашнюю папку, а потом перенесите на сервере через sudo:

  1. На своём компьютере: scp site.zip ivan@ВАШ_IP:/home/ivan/.
  2. Подключитесь к серверу: ssh ivan@ВАШ_IP.
  3. Перенесите файл: sudo mv /home/ivan/site.zip /var/www/example.com/.
  4. Распакуйте архив — как, рассказано в статье Как распаковать архив tar.gz и zip.
  5. Проверьте права на файлы сайта — Права на файлы сайта на VPS.

Подробнее о команде mv — в статье cp, mv, rm и mkdir.

Где ещё скопировать файлы

scp ставится вместе с ssh: если в вашем терминале работает команда ssh, работает и scp. Начиная с OpenSSH 9.0 scp передаёт файлы по протоколу SFTP. Если сервер старый и SFTP не поддерживает, добавьте ключ -O: он включает прежний протокол SCP.

Если удобнее мышкой, подойдут программы с протоколом SFTP — они перечислены в инструкции по SSH, раздел «Как передать файлы на сервер». Для больших папок и повторного копирования удобнее Команда rsync: он передаёт только изменившиеся файлы.

Ошибки и как их исправить

ОтветЧто значитЧто сделать
scp: dest open "/var/www/example.com/site.zip": Permission deniedнет прав писать в эту папку на сервереотправьте в домашнюю папку
scp: stat local "site.zip": No such file or directoryв текущей папке на вашем компьютере нет такого файлаперейдите в папку с файлом или укажите полный путь
scp: local "site" is not a regular fileвы отправляете папку без -rдобавьте -r
scp: download /home/ivan/backup: not a regular fileвы скачиваете папку без -rдобавьте -r
scp: /home/ivan/backup.tar.gz: No such file or directoryна сервере нет такого файлапроверьте путь на сервере командой ls
Permission denied (publickey)сервер не принял ключразбор ошибки
Connection refusedна этом порту SSH не отвечаетпроверьте порт и ключ -P — разбор
Connection timed outсервер не отвечаетразбор
Could not resolve hostnameопечатка в адресе или в имени из configразбор

Тексты ошибок приведены для OpenSSH 9.6, в других версиях слова могут немного отличаться. Если файл с сервера не находится, а путь кажется верным, проверьте большие и маленькие буквы: в Linux Site.zip и site.zip — разные файлы.

Источники

Сверено 11 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 11.10.2026