SCP (Secure Copy Protocol) - це утиліта і протокол водночас. Як протокол, SCP (Secure Copy Protocol) визначає спосіб безпечної передачі файлів між комп’ютерами через мережу. Він використовує SSH (Secure Shell) для забезпечення шифрування даних під час передачі, що робить його безпечним ідеальним для використання в небезпечних мережах, таких як Інтернет.
Утиліта SCP використовує цей протокол для копіювання файлів між комп’ютерами. Це командний рядок, який надає можливість копіювати файли з і до віддалених серверів через SSH. Утиліта SCP доступна в більшості дистрибутивів Linux і може бути викликана з терміналу.
Щоб скопіювати файл за допомогою SCP, ви використовуєте команду в терміналі наступного вигляду:
scp [опції] <вихідний_файл> <призначення>
Опції:
-1 - використовувати протокол SSH1;
-2 - використовувати протокол SSH2;
-B - пакетний режим для передавання кількох файлів;
-C - увімкнути стиснення;
- l - встановити обмеження швидкості в кбіт/сек;
-o - задати потрібну опцію SSH;
-p - зберігати час модифікації;
-r - рекурсивне копіювання директорій;
-v - більш докладний режим.
Наприклад, щоб скопіювати локальний файл на віддалений сервер, ви можете використати команду:
scp файл.txt користувач@віддалений_сервер:/віддалений/шлях/
Де:
файл.txt
- локальний файл, який ви хочете скопіювати.користувач
- ім’я користувача на віддаленому сервері.віддалений_сервер
- адреса віддаленого сервера./віддалений/шлях/
- шлях на віддаленому сервері, куди ви хочете скопіювати файл.
SCP також працює у зворотному напрямку: ви можете копіювати файли з віддаленого сервера на ваш локальний комп’ютер, замінивши порядок аргументів.
scp користувач@віддалений_сервер:/віддалений/шлях/файл.txt /локальний/шлях/
Де:
користувач
- ім’я користувача на віддаленому сервері.віддалений_сервер
- адреса віддаленого сервера./віддалений/шлях/файл.txt
- шлях до файлу на віддаленому сервері, який ви хочете скопіювати./локальний/шлях/
- шлях на вашому локальному комп’ютері, куди ви хочете скопіювати файл.
Копіювання файлу з одного віддаленого сервера на інший (через локальний комп’ютер):
scp користувач1@сервер1:/шлях/до/файлу користувач2@сервер2:/шлях/до/папки
Приклад:
scp [email protected]:/home/user1/myfile.txt [email protected]:/home/user2/
Нижче деякі команди, які дозволять виконувати копіювання з більш конкретними задачами.
Копіювання цілої директорії (з флагом -r
):
scp -r /шлях/до/локальної_папки користувач@віддалений_сервер:/шлях/до/папки
Приклад:
scp -r project_folder [email protected]:/home/user/
Кпіювання з використанням нестандартного порту (флаг -P
):
scp -P 2222 file.txt [email protected]:/home/user/
Аутентифікація за допомогою SSH-ключа:
scp -i ~/.ssh/id_rsa file.txt [email protected]:/home/user/
Обмеження швидкості передачі (флаг -l
, в кілобітах за секунду):
scp -l 1000 file.txt [email protected]:/home/user/
Звісно, що це все є в документації. Тут представлений базовий набір команд, які частіше всього використовуються. Якщо є що добавити, то пишіть в коментаріях.