Копирование файлов с помощью SCP

Полное руководство по утилите secure copy в Linux.

SCP (Secure Copy) — это простая и безопасная утилита для копирования файлов и директорий между локальной машиной и удалённым сервером (или между двумя удалёнными серверами) по протоколу SSH. Всё передаётся в зашифрованном виде, поэтому SCP идеально подходит для работы с VPS и выделенными серверами.

SCP использует тот же механизм аутентификации, что и SSH: пароль или SSH-ключи.

Базовый синтаксис

scp [опции] источник назначение
  • Источник — файл/папка, которую копируем
  • Назначение — куда копируем

Источник или назначение может быть:

  • Локальный путь: /home/user/file.txt
  • Удалённый путь: user@server-ip:/path/to/file.txt

Наиболее полезные ключи SCP

  • -r — рекурсивно (копировать папки со всем содержимым)
  • -P порт — указать нестандартный порт SSH (если не 22)
  • -p — сохранить время модификации, права доступа и владельца
  • -v — подробный вывод (показывает процесс и ошибки)
  • -C — включить сжатие (ускоряет передачу по медленным каналам)
  • -i ключ — использовать конкретный приватный SSH-ключ
  • -l лимит — ограничить скорость (в Кбит/с), например -l 1000 = 1 Мбит/с

Примеры использования

  1. Скопировать файл с сервера на локальный компьютер
scp user@192.168.1.100:/var/www/site.ru/config.php ~/Downloads/
  1. Скопировать папку с сервера на локальный компьютер (рекурсивно)
scp -r user@192.168.1.100:/var/www/site.ru/uploads ~/backup/
  1. Скопировать папку между двумя удалёнными серверами
scp -r user1@server1.example.com:/var/www/site user2@server2.example.com:/backup/
  1. Скопировать на сервер с нестандартным портом (например 2222)
scp -P 2222 file.txt user@server-ip:/home/user/
  1. Скопировать с использованием конкретного SSH-ключа
scp -i ~/.ssh/my_key file.txt user@server-ip:/home/user/

Полезные советы

  • Всегда используйте -r при копировании папок — иначе поддиректории не скопируются
  • Добавляйте -v при проблемах — увидите, на каком этапе происходит ошибка
  • Для больших объёмов данных лучше использовать rsync — он умеет продолжать передачу после обрыва и экономит трафик
  • Если копируете много мелких файлов — добавьте -C для сжатия на лету
  • Для автоматизации используйте SSH-ключи без пароля (но храните приватный ключ в безопасности)
  • SCP работает только по SSH — если SSH не работает, SCP тоже не запустится

Быстрые команды для типичных задач

  • Скачать весь сайт (pulic_html) с сервера:
scp -r user@server-ip:/home/user/public_html ~/backup_site/
  • Загрузить весь сайт на сервер:
scp -r ./public_html user@server-ip:/home/user/
  • Скопировать базу данных (дамп):
scp dump.sql user@server-ip:/home/user/

Помощь

Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!

Обновлено:
Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам