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: c означає шифр. За замовчуванням SCP використовує 'AES-128' для шифрування файлів. Якщо ви хочете змінити шифр, вам потрібно скористатися опцією -c, а потім іменем шифру.
- -i: я означає ідентифікаційний файл або приватний ключ. Як правило, аутентифікація на основі ключів вибирається в середовищах Linux. Отже, ми можемо конкретно згадати файл приватного ключа або файл посвідчення за допомогою опції -i.
- -l: l означає обмежену пропускну здатність. За допомогою цієї опції ви можете встановити максимальну пропускну здатність, яку потрібно використовувати. Це в Кбіт / с.
- -B: Цей параметр використовується для використання пакетного режиму під час копіювання.
- -F: Цей параметр використовується для використання іншого файлу ssh_config під час копіювання в ситуаціях, коли для підключення до систем Linux потрібно використовувати різні мережі. У таких сценаріях вам потрібно призначити замінний файл конфігурації SSH для кожного користувача.
- -P: Якщо номер порту ssh цільового хосту відрізняється від номера порту за замовчуванням 22, то вам потрібно спеціально вказати номер порту, використовуючи опцію -P.
- -p: Цей параметр використовується для збереження дозволів, модифікацій та часу доступу до файлів під час копіювання.
- -q: Цей параметр виконує команду SCP у тихому режимі. Він вимкне індикатор прогресу та не відображатиме перебіг передачі, попередження або діагностичні повідомлення ssh на екрані терміналу Linux.
- -r: Параметр -r використовується для рекурсивного копіювання файлів та каталогів. Наприклад, якщо ви хочете скопіювати всю папку (разом із вмістом всередині папки) на цільовій машині, вам потрібно використовувати опцію -r.
- -S: Цей параметр використовується для вказівки програми для підключення.
- -v: v означає багатослівник. Цей параметр покроково відображатиме прогрес виконання команди SCP на екрані терміналу. Це дуже корисно при налагодженні.
Приклади команд SCP
Давайте розберемося, як використовувати команду SCP, на прикладах:
Приклад 1: для копіювання з локального на віддалений хост
scp -v lockfile.txt kaushapx@10.172.80.167: /home/cpf657/kaushapx/test1
У наведеному вище прикладі
Запитання та відповіді для співпраці з Oracle DBA
- Параметр -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):
Припустимо, у мене в localhost є папка під назвою ‘test’, і ця папка містить чотири файли. Я хочу скопіювати всю папку всередині іншої папки під назвою ‘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. Пам'ятайте, пропускна здатність, яку ми тут розмістили, становить Кбіт / с.
які там електронні листи
Приклад 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.
Q # 1) Що таке команда SCP?
Відповідь: SCP розшифровується як Secure Copy Protocol. За допомогою команди SCP ви можете надійно копіювати файли між хостами в мережі. Він використовує механізми SSH для передачі даних. Він використовує автентифікацію за допомогою ключа або пароля.
Q # 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 для рекурсивної копії тощо.
Q # 4) Як нам SCP файл?
Відповідь: Ви можете SCP файл, використовуючи команду SCP, як згадано в Q # 3.
Q # 5) SCP копіює чи переміщує?
Відповідь: Команда SCP копіює файли з джерела до місця призначення. Отже, після SCP файл буде присутній на обох хостах.
Q # 6) Чи можете ви використовувати SCP для каталогу?
Відповідь: Так, ми можемо використовувати SCP для каталогу. Вам потрібно скористатися опцією -r для копіювання всього каталогу разом з його вмістом.
Нижче наведено синтаксис команди SCP для копіювання каталогу з локального хосту на віддалений хост:
scp -r localhost_path_to_directory username@target_server_ip:/path_to_target_directory/
Q # 7) Як ми використовуємо SCP для всіх файлів у каталозі?
Відповідь: Щоб використовувати SCP для всіх файлів у каталозі, потрібно додати * із шляхом до каталогу:
scp -r localhost_path_to_directory/* username@target_server_ip:/path_to_target_directory/
Таким чином, усі файли в локальному каталозі будуть скопійовані у віддалений каталог.
Q # 8) Чи можемо ми використовувати SCP у Windows?
Відповідь: Так, ви можете використовувати SCP у Windows. Однак він попередньо не завантажується в Windows, на відміну від Linux та Mac, тому для Windows потрібно встановити програмне забезпечення SCP окремо.
Ви можете завантажити Putty, що включає SCP для Windows (програмне забезпечення під назвою Putty SCP (PSCP), або ви можете завантажити WinSCP (захищена копія Windows). Клієнт PSCP працює безпосередньо з командного рядка Windows. Існує також інше програмне забезпечення для використання SCP в Windows .
Q # 9) Як ми використовуємо SCP для кількох файлів?
Відповідь: Для копіювання декількох файлів з localhost на віддалений хост за допомогою SCP:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
Для копіювання декількох файлів з віддаленого хосту в поточний каталог localhost за допомогою SCP:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
Q # 10) Яка різниця між SCP та SFTP?
Відповідь: SCP - це протокол безпечного копіювання. SFTP - це протокол безпечної передачі файлів. Обидва використовують TCP-порт 22 і працюють за механізмом SSH. Але вони відрізняються технічними характеристиками та функціями.
SCP передає лише дані, тоді як SFTP, крім передачі файлів, також виконує функції доступу до файлів та керування ними. За допомогою SFTP ви можете робити такі операції, як перелік віддалених каталогів або видалення файлів. Але SCP дозволяє копіювати лише файли та каталоги між серверами.
Швидкість передачі файлів у SCP швидша, ніж SFTP, оскільки вона використовує більш ефективний алгоритм передачі файлів.
як відкрити файл .eps
У SFTP ви можете відновити перервану передачу файлів із клієнта командного рядка. Але SCP не має цієї функції.
SFTP пропонує компонент графічного інтерфейсу, але SCP цього не має.
Q # 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 в Unix з прикладами
- Аргументи командного рядка в сценарії оболонки Unix з прикладом
- Команда Grep в Unix на простих прикладах
- Маніпулювання файлами в Unix: огляд файлової системи Unix
- Команда сортування Unix із синтаксисом, опціями та прикладами