12 scp command examples securely transfer files linux
Този урок обяснява протокола за защитено копиране или SCP команда, използвани за сигурно копиране на файловете в Linux и Unix със синтаксис и примери:
В тази статия ще обсъдим командата SCP (Secure Copy Protocol), която се използва за прехвърляне на файлове. Ще видим какво е и как работи с помощта на няколко примера. И така, нека първо се опитаме да разберем какво е SCP команда.
Какво ще научите:
Какво е SCP команда?
SCP (Secure Copy Protocol) е мрежов протокол, който се използва за сигурно прехвърляне на файлове между хостове в компютърна мрежа. Използвайки тази помощна програма за команден ред в Linux и Unix подобни системи, можете да направите прехвърляне на файлове от localhost към отдалечен хост, или от отдалечен хост към локална система, или между два отдалечени хоста.
(изображение източник )
SCP гарантира автентичността, криптирането и поверителността на данните, като използва механизма SSH (Secure Shell) за прехвърляне на файловете. Така че данните в транзит са защитени от атаките за подслушване. Клиентите могат да качват и изтеглят файлове и директории към и от сървър, използвайки този протокол. Той изисква или парола, или ключове за удостоверяване. Портът по подразбиране за SCP е TCP порт 22.
Предимството на SCP протокола е, че не е необходимо да стартирате FTP сесия или да влизате изрично в отдалечените хостове за прехвърляне на файлове.
Синтаксис за SCP протокол
# 1) За копиране на файла от локален на отдалечен хост
scp (options) SourceFileName UserName@TargetHost:TargetPath
Това е съвсем основният синтаксис на SCP командата, който ще копира изходния файл от текущия хост в целевия път на целевия хост, използвайки потребителски акаунт. Обикновено е доста подобен на командата copy cp.
# 2) За копиране от отдалечен хост на локален
За копиране на файл:
scp (options) UserName@SourceHost:SourceFilePath TargetFileName
Или, просто изтеглете файла:
scp (options) UserName@SourceHost:SourceFilePath
За копиране на папка (рекурсивно):
scp -r UserName@SourceHost:SourceDirectoryPath TargetFolderName
Ако отдалеченият хост използва порт, различен от порт 22 по подразбиране, тогава номерът на порта трябва да бъде изрично посочен в командата, използвайки опцията -P.
# 3) Копиране от един отдалечен компютър на друг отдалечен компютър
scp (options) UserName@SourceHost:SourcePath UserName@TargetHost:TargetPath
Когато копирате файлове от един отдалечен компютър на друг, трафикът не преминава покрай вашия компютър. Тази операция се извършва директно между двата отдалечени сървъра.
# 4) Копиране на множество файлове
За копиране на множество файлове от localhost на отдалечен хост:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
За копиране на множество файлове от отдалечен хост в текущата директория на localhost:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
Опции, използвани с SCP команда
Най-често използваните опции с SCP команда са изброени по-долу:
- -° С : C, тук означава активиране на компресия. Чрез използването на тази опция ще бъде активирано компресирането и скоростта на трансфер ще бъде увеличена по време на копиране. Той автоматично ще даде възможност за компресия в източника и декомпресия в целта.
- -° С: c означава шифър. По подразбиране SCP използва „AES-128“ за криптиране на файлове. Ако искате да промените шифъра, трябва да използвате опцията -c, последвана от името на шифъра.
- -i: i означава идентификационен файл или частен ключ. По принцип удостоверяването въз основа на ключ се избира в Linux среди. Така че, можем специално да споменем файла с частния ключ или файла за самоличност, като използваме опцията -i.
- -l: l означава ограничена честотна лента. Чрез тази опция можете да зададете максималната честотна лента, която да се използва. Това е в Kbits / s.
- -B: Тази опция се използва за използване на групов режим по време на копиране.
- -F: Тази опция се използва за използване на различен файл ssh_config, докато копирате в ситуации, когато трябва да използвате различни мрежи, за да се свържете с Linux системи. В такива сценарии трябва да присвоите заместител на SSH конфигурационен файл на потребител.
- -P: Ако номерът на ssh порта на хоста за местоназначение е различен от номера на порта по подразбиране 22, тогава трябва да посочите конкретно номера на порта чрез опцията -P.
- -p: Тази опция се използва за запазване на разрешения за файлове, модификации и времена за достъп по време на копиране.
- -q: Тази опция ще изпълни SCP командата в тих режим. Той ще изключи индикатора за напредъка и няма да показва прогреса на трансфера, предупреждението или диагностичните съобщения на ssh на терминалния екран на Linux.
- -r: Опцията -r се използва за рекурсивно копиране на файлове и директории. Например, ако искате да копирате цялата папка (заедно със съдържанието вътре в папката) на целевата машина, трябва да използвате опцията -r.
- -С : Тази опция се използва за определяне на програмата, която да се използва за свързване.
- -v: v означава многословен. Тази опция ще покаже стъпка по стъпка напредъка на изпълнението на SCP команда на терминалния екран. Наистина е полезно при отстраняване на грешки.
Примери за команди на SCP
Нека разберем как да използваме SCP командата с помощта на примери:
Пример 1: за копиране от локален на отдалечен хост
scp -v lockfile.txt kaushapx@10.172.80.167: /home/cpf657/kaushapx/test1
В горния пример,
безплатно студио youtube към mp3 конвертор -
- -v опцията се използва като подробна опция, за да видите подробностите за изхода на тази команда на терминала на Linux. Използвайки подробния изход, можете да разберете какво точно се случва във фонов режим, когато командата се изпълни. Това помага за отстраняване на грешки.
- Lockfile.txt е името на изходния файл, което искаме да прехвърлим на отдалечен хост.
- Kaushapx е пример за потребителско име. Използвайки този акаунт за потребителско име, ние ще копираме сигурно файла на отдалечения хост.
- 10.172.80.167 е примерът за IP на целевия отдалечен хост, към който искаме да прехвърлим файла.
- / home / cpf657 / kaushapx / test1 е пример за абсолютен път, където искаме да поставим този прехвърлен файл.
Снимките на екрана по-долу демонстрират изпълнението на горната SCP команда.
Пример 2: за копиране от отдалечен хост в локална система:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/test/parent/directory1/DemoFile.txt /home/tpf655/kaushapx
Пример 3: за копиране на множество файлове на отдалечен хост:
scp DemoFile.txt log.xml kaushapx@10.172.80.167:/home/cpf657/kaushapx/test
Пример 4: за копиране на файлове в две отдалечени системи:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Пример 5: за рекурсивно копиране на файлове и директории (използвайки опцията -r):
Да предположим, че имам папка, наречена ‘test’ в localhost и тази папка съдържа четири файла. Искам да копирам цялата папка в друга папка, наречена ‘test1’, присъстваща на отдалечен хост.
Ще използвам следната команда:
scp -r test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
кой е най-добрият рекламен блокер за хром
Пример 6: за увеличаване на скоростта на копиране чрез активиране на компресиране (използвайки опция -C):
Нека прехвърлим същата папка, която направихме в Пример 5, но този път като разрешим компресията:
scp -r -C test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Пример 7: за ограничаване на честотната лента при копиране (с опция -l):
Нека продължим със същата опция. Този път ще използваме опцията -l и ще посочим честотната лента, да речем 500. Не забравяйте, че честотната лента, която сме поставили тук, е в Kbit / s.
Пример 8: за посочване на различен ssh порт при копиране (с опция -P):
Ако отдалеченият сървър, на който копирате файла, използва някакъв порт, различен от порт 22 по подразбиране, тогава трябва изрично да кажете номера на порта в командата SCP, като използвате опцията -P. Например, ако ssh портът на отдалечения сървър е 2022, тогава ще споменете -P 2022 в командата SCP.
scp -P 2022 console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Пример 9: за запазване на разрешения за файлове, модификации и времена за достъп по време на копиране (с опция -p):
scp -p console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Пример 10: за копиране на файлове в тих режим (с опция -q):
scp -q console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Пример 11: за идентифициране на файлове в SCP по време на копиране (с опция -i):
В горния пример my_private_key.pem е файлът за самоличност или файлът с частен ключ.
Пример 12: за използване на различен шифър при копиране през SCP (с опция -c):
scp -c 3des-cbc -r test1 kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
ЧЗВ относно командата SCP
В този раздел ще разгледаме някои често задавани въпроси по SCP командата.
В # 1) Какво е SCP команда?
Отговор: SCP означава протокол за защитено копиране. Използвайки командата SCP, можете да извършите безопасно копиране на файлове между хостове в мрежата. Той използва механизмите на SSH за пренос на данни. Той използва удостоверяване въз основа на ключ или парола.
В # 2) Какво прави SCP в Linux?
Отговор: В Linux командата SCP прехвърля файловете между сървърите по сигурен начин. Това може да бъде копие на файл между отдалечен сървър и локален хост или между два отдалечени сървъра. SCP е предварително инсталирана команда в Linux и е известна със своята простота и сигурност.
В # 3) Как да SCP файлове в Linux?
Отговор: Можете да SCP файлове чрез следния синтаксис на командата:
scp (options) (username@)(source_host:)file1 (username@)(destination_host:)file2.
Много опции могат да се използват с командата SCP. Например, -C за компресия, -c за шифър, -P за порта, -I за частния ключ, -l за лимит, -r за рекурсивно копиране и т.н.
В # 4) Как да SCP файл?
Отговор: Можете да SCP файл, като използвате SCP командата, както е споменато в Q # 3.
В # 5) Копира ли или премества SCP?
Отговор: SCP командата копира файловете от източника до местоназначението. Така че, след SCP, файлът ще присъства и на двамата хостове.
В # 6) Можете ли да използвате SCP за директория?
Отговор: Да, можем да използваме SCP за директория. Трябва да използвате опцията -r за копиране на цялата директория заедно с нейното съдържание.
По-долу е даден синтаксисът на SCP командата за копиране на директорията от localhost на отдалечен хост:
scp -r localhost_path_to_directory username@target_server_ip:/path_to_target_directory/
В # 7) Как да използваме SCP за всички файлове в директория?
Отговор: За да използвате SCP за всички файлове в директория, трябва да добавите * с пътя на директорията:
scp -r localhost_path_to_directory/* username@target_server_ip:/path_to_target_directory/
По този начин всички файлове в локалната директория ще бъдат копирани в отдалечената директория.
В # 8) Можем ли да използваме SCP в Windows?
Отговор: Да, можете да използвате SCP в Windows. Той обаче не е предварително изтеглен в Windows, за разлика от Linux и Mac, така че за Windows трябва да инсталирате SCP софтуера отделно.
Можете да изтеглите Putty, който включва SCP за Windows (софтуер, наречен Putty SCP (PSCP), или можете да изтеглите WinSCP (Windows Secure Copy). PSCP клиентът се изпълнява директно от командния ред на Windows. Съществува и друг софтуер за използване на SCP в Windows .
В # 9) Как да използваме SCP за множество файлове?
Отговор: За копиране на множество файлове от localhost на отдалечен хост с помощта на SCP:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
За копиране на множество файлове от отдалечен хост в текуща директория на localhost с помощта на SCP:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
В # 10) Каква е разликата между SCP и SFTP?
Отговор: SCP е протоколът за защитено копиране. SFTP е протоколът за защитен трансфер на файлове. И двамата използват TCP порт 22 и работят на механизма SSH. Но те се различават по спецификации и функции.
SCP прехвърля само данните, докато SFTP освен прехвърлянето на файлове изпълнява и функции за достъп до файлове и функции за управление на файлове. С SFTP можете да извършвате операции като изброяване на отдалечени директории или изтриване на файлове. Но SCP позволява само копиране на файлове и директории между сървъри.
Скоростта на трансфер на файлове в SCP е по-бърза от SFTP, защото използва по-ефективен алгоритъм за прехвърляне на файлове.
най-добрият YouTube към mp3 конвертор
В SFTP можете да възобновите прекъснатото прехвърляне на файлове от клиента на командния ред. Но SCP няма тази функция.
SFTP предлага GUI компонент, но SCP го няма.
В # 11) Какво представлява SCP командата в Windows за сигурно копиране на файл?
Отговор: Отворете командния ред на Windows и дайте командата по-долу за сигурно копиране на файл от локална машина на Windows на сървър (може да бъде Linux сървър):
pscp filepath userid @ target_server_ip: target_path
Пример: pscp c: desktop sample.txt userxyz@192.162.x.x: /tmp/foo/sample.txt
Трябва да имате инсталиран PSCP за изпълнение на тази команда.
В # 12) Сигурен ли е SCP?
Отговор: Да, SCP е защитен. Той използва механизъм SSH (Secure Shell Protocol) за трансфер на данни, като по този начин се възползва от сигурността, предлагана от SSH. Транзитните данни се пазят в тайна и се гарантира тяхната автентичност.
Заключение
В този урок видяхме как да използваме SCP командата за сигурно копиране на файловете между два отдалечени хоста или между локален хост и отдалечен хост, без да инициираме FTP сесия или да влизаме изрично в отдалечените машини.
SCP използва механизма SSH за копиране на данните и по този начин данните в транзит са криптирани и защитени. Той се нуждае от парола или ключ за удостоверяване. За разлика от RCP (протокол за отдалечено копиране) или FTP (протокол за прехвърляне на файлове), SCP криптира както файла, така и паролите, обменени между системите, за да защити всяко проследяване в мрежата.
Препоръчително четене
- Изрежете командата в Unix с примери
- Команда за намиране в Unix: Намиране на файлове с файл за намиране на Unix (примери)
- Синтаксис на командата Unix Cat, Опции с примери
- Ls Command в Unix с примери
- Аргументи на командния ред в скрипта на обвивката на Unix с пример
- Команда Grep в Unix с прости примери
- Файлова манипулация в Unix: Преглед на файловата система Unix
- Команда за сортиране на Unix със синтаксис, опции и примери