Команда scp в Linux Bash

Команда scp (secure copy) используется для безопасной передачи файлов между локальной и удалённой машинами через SSH. Это простой и мощный способ копирования данных в сетевых условиях.

Основной синтаксис

scp [опции] <источник> <назначение>

Примеры:

scp file.txt user@192.168.0.101:/home/user/
scp user@server:/var/log/syslog ./local_syslog

Полезные опции

Опции команды scp

Опция

Описание

-r

Рекурсивное копирование папки.

-P <порт>

Указание нестандартного SSH-порта.

-i <файл_ключа>

Использование приватного SSH-ключа.

-C

Сжатие данных при передаче.

-v

Подробный вывод (debug).

-q

Тихий режим (без вывода статуса передачи).

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

  1. Копирование файла с локального на удалённый сервер:

    scp ./report.pdf user@host:/home/user/docs/
    
  2. С удалённого сервера на локальный компьютер:

    scp user@host:/var/log/auth.log ./auth.log
    
  3. Рекурсивное копирование папки:

    scp -r my_project/ user@host:/var/www/
    
  4. Использование порта 2222:

    scp -P 2222 file.txt user@host:/tmp/
    
  5. Передача с использованием SSH-ключа:

    scp -i ~/.ssh/id_rsa secrets.txt user@host:/secure/
    

Советы по безопасности

  • Используйте ssh-keygen и ssh-copy-id для настройки входа по ключу.

  • Избегайте хранения паролей в скриптах.

  • Убедитесь, что целевые директории доступны для записи.

Note

Команда scp шифрует как данные, так и пароли, передаваемые по сети.

Warning

Некоторые современные дистрибутивы заменяют scp на rsync из-за его большей гибкости и безопасности.