Частой задачей разработчика бывает обмен файлами между локальной и удаленной машинами. И все бы хорошо, когда для этой цели используется графический интерфейс каких-нибудь приложений, но что, если они отсутствуют? В этом случае на помощь приходит утилита командной строки — scp
(безопасное копирование).
scp
— программа для удаленного копирования файлов между хостами, которая использует ssh для передачи данных.
SCP — это простой способ защитить данные от перехватчиков и сохранить их конфиденциальность. По сути, SCP представляет собой смесь RCP и SSH (Secure Shell). Первый протокол обеспечивает выполнение операций копирования, а второй шифрует информацию и проверяет подлинность удалённых систем.
https://manpages.debian.org/stretch/openssh-client/scp.1.en.html
Если в ОС Windows Запустить командную оболочку и ввести команду scp, то в ответ мы получим некий «хелп»:
usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]
[-J destination] [-l limit] [-o ssh_option] [-P port]
[-S program] source ... target
Обратите внимание на параметр порт, его нужно указывать с заглавной буквы.
итак, предположим что мы копируем с нашего локального компьютера дамп базы данных, для этого нам следует выполнить вот такую команду, синтаксис которой мы разберем ниже:
scp -i ~/.ssh/key.ppk -P 22557 ./db.sql root@95.141.78.326:/var/www
Ключ -i позволяет нам пройти аутентификацию при помощи указанного приватного ключа, ключ -P указывает наш произвольный порт для соединения, далее тот файл который подлежит копированию на сервер и затем имя пользователя и «айпи» сервера. После двоеточия мы указываем сразу путь куда должен быть скопирован файл.
Во избежании проблем с правами, если вы действуете от имени отличительного от root-а пользователя, рекомендуется осуществлять копирование в домашнюю директорию указав знак тильды:
scp -i ~/.ssh/key.ppk -P 22557 ./db.sql kolya@95.141.78.326:~