Команда 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
Полезные опции¶
Опция |
Описание |
|---|---|
|
Рекурсивное копирование папки. |
|
Указание нестандартного SSH-порта. |
|
Использование приватного SSH-ключа. |
|
Сжатие данных при передаче. |
|
Подробный вывод (debug). |
|
Тихий режим (без вывода статуса передачи). |
Примеры использования¶
Копирование файла с локального на удалённый сервер:
scp ./report.pdf user@host:/home/user/docs/
С удалённого сервера на локальный компьютер:
scp user@host:/var/log/auth.log ./auth.log
Рекурсивное копирование папки:
scp -r my_project/ user@host:/var/www/
Использование порта 2222:
scp -P 2222 file.txt user@host:/tmp/
Передача с использованием SSH-ключа:
scp -i ~/.ssh/id_rsa secrets.txt user@host:/secure/
Советы по безопасности¶
Используйте
ssh-keygenиssh-copy-idдля настройки входа по ключу.Избегайте хранения паролей в скриптах.
Убедитесь, что целевые директории доступны для записи.
Note
Команда scp шифрует как данные, так и пароли, передаваемые по сети.
Warning
Некоторые современные дистрибутивы заменяют scp на rsync из-за его большей гибкости и безопасности.