Копіювання файлів через SSH ⋆ ALexHost SRL

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Use code at checkout:

Skills
18.12.2024

Копіювання файлів через SSH

SSH (Secure Shell) – це широко використовуваний протокол для безпечного доступу до віддалених серверів і керування ними через зашифроване з’єднання. Однією з найпоширеніших задач при роботі з SSH є копіювання файлів між вашою локальною машиною і віддаленим сервером або між двома віддаленими серверами.

У цій статті ми розглянемо різні способи копіювання файлів по SSH, включаючи використання SCP (Secure Copy Protocol), rsync та інших методів.


Навіщо використовувати SSH для передачі файлів?

Використання SSH для передачі файлів має кілька переваг:

  • Безпека: SSH шифрує як команду, так і дані під час передачі, забезпечуючи захист конфіденційної інформації.
  • Ефективність: SSH швидкий і надійний, дозволяє передавати файли безпосередньо між системами без необхідності окремого входу в систему.
  • Автоматизація: SSH можна інтегрувати в скрипти, що дозволяє автоматизувати передачу файлів між серверами або локальними машинами.

1. Копіювання файлів за допомогою SCP (протокол безпечного копіювання)

SCP – один з найпопулярніших інструментів для безпечного копіювання файлів через SSH. Він дозволяє передавати файли з локальної машини на віддалений сервер, з віддаленого сервера на локальну машину або між двома віддаленими серверами.

Базовий синтаксис SCP:

scp [опції] [параметри] [джерело] [пункт призначення]

Приклад 1: Копіювання файлу з локальної машини на віддалений сервер

scp /шлях/до/локального/файлу ім’я користувача@віддалений_хост:/шлях/до/віддаленого/призначення

У цьому прикладі

  • /path/to/local/file – шлях до файлу на вашій локальній машині.
  • username@remote_host – ім’я користувача SSH та ім’я хоста або IP-адреса віддаленого сервера.
  • /шлях/до/віддаленого/призначення – шлях, де буде збережено файл на віддаленому сервері.

Приклад 2: Копіювання файлу з віддаленого сервера на локальну машину

scp ім’я користувача@віддалений_хост:/шлях/до/віддаленого/файлу/шлях/до/локального/призначення

У цьому випадку файл передається з віддаленого сервера на локальну машину.

Приклад 3: Рекурсивне копіювання каталогу

Щоб скопіювати весь каталог, скористайтеся опцією -r (рекурсивний):

scp -r /шлях/до/локального/каталогу ім’я користувача@віддалений_хост:/шлях/до/віддаленого/призначення

Це перенесе каталог і весь його вміст на віддалений сервер.

Корисні опції SCP:

  • -P [порт]: Вкажіть порт SSH, якщо він відрізняється від стандартного (22).
  • -C: Увімкнути стиснення під час передачі для швидшого копіювання файлів.
  • -i [файл_ідентифікації]: Використовувати певний приватний ключ SSH для автентифікації.

2. Копіювання файлів за допомогою rsync

rsync – ще один потужний інструмент для передачі файлів по SSH. Йому часто надають перевагу для передачі великих або повторюваних файлів, оскільки він копіює лише зміни між джерелом і пунктом призначення, заощаджуючи час і пропускну здатність.

Базовий синтаксис rsync:

rsync [опції] [джерело] [місце призначення]

Приклад 1: Копіювання файлу з локальної машини на віддалений сервер

rsync -avz /шлях/до/локального/файлу ім’я користувача@віддалений_хост:/шлях/до/віддаленого/призначення

Приклад 2: Копіювання каталогу за допомогою rsync

rsync -avz /шлях/до/локального/ каталогу/ ім’я користувача@віддалений_хост:/шлях/до/віддаленого/призначення/

Корисні параметри rsync:

  • -a: Режим архівування, у якому зберігаються символічні посилання, дозволи, мітки часу та права власності на файли.
  • -v: Докладний режим для відображення прогресу під час передачі.
  • -z: Увімкнути стиснення для пришвидшення передачі.
  • –видалити: Видалити файли у місці призначення, які більше не існують у джерелі.
  • -e “ssh -p [порт]”: Вказати власний порт SSH.

3. Копіювання файлів між двома віддаленими серверами

За допомогою SSH ви також можете копіювати файли безпосередньо між двома віддаленими серверами. І SCP, і rsync підтримують цю можливість.

Приклад 1: Копіювання файлів між двома віддаленими серверами за допомогою SCP

scp ім’я_користувача1@віддалений_хост1:/шлях/до/файлу ім’я_користувача2@віддалений_хост2:/шлях/до/призначення

Приклад 2: Копіювання файлів між двома віддаленими серверами за допомогою rsync

rsync -avz ім’я_користувача1@віддалений_хост1:/шлях/до/файлу ім’я_користувача2@віддалений_хост2:/шлях/до/призначення

Це особливо корисно для передачі файлів між серверами без необхідності їх попереднього завантаження на вашу локальну машину.


4. Копіювання файлів за допомогою SFTP (протокол передачі файлів SSH)

SFTP – це ще один метод безпечної передачі файлів через SSH. Він схожий на FTP, але використовує SSH для забезпечення шифрування. SFTP зазвичай використовується в інтерактивних сеансах, але також може бути автоматизований.

Використання SFTP:

Щоб розпочати сеанс SFTP, виконайте наступну команду:

sftp ім’я користувача@віддалений_хост

Опинившись у запрошенні SFTP, ви можете використовувати такі команди, як:

  • put /path/to/local/file /path/to/remote/destination: Завантажує файл з вашого локального комп’ютера на віддалений сервер.
  • get /path/to/remote/file /path/to/local/destination: Завантажити файл з віддаленого сервера на ваш локальний комп’ютер.
  • mput і mget: Щоб завантажити або викачати кілька файлів одночасно.

Щоб вийти з сеансу SFTP, введіть exit або quit.


5. Автоматизація передачі файлів за допомогою ключів SSH

Для багаторазового передавання файлів варто налаштувати автентифікацію на основі ключів SSH, щоб не вводити пароль щоразу.

Крок 1: Згенеруйте пару ключів SSH (якщо у вас їх ще немає)

На локальній машині запустіть:

ssh-keygen -t rsa

У результаті буде згенеровано пару відкритого і закритого ключів.

Крок 2: Копіювання відкритого ключа на віддалений сервер

Скопіюйте ваш відкритий ключ на віддалений сервер за допомогою наступної команди:

ssh-copy-id ім’я користувача@віддалений_хост

Тепер ви можете входити в систему і передавати файли без необхідності вводити пароль, що спрощує автоматизацію.


Висновок

Копіювання файлів по SSH – це безпечний і ефективний спосіб передачі даних між вашим локальним комп’ютером і віддаленим сервером або між двома віддаленими серверами. Незалежно від того, чи використовуєте ви SCP, rsync або SFTP, SSH пропонує зашифровану передачу файлів, яка захищає ваші дані від перехоплення. Такі інструменти, як SCP, є простими для одноразової передачі, тоді як rsync ідеально підходить для постійних завдань синхронізації, особливо для великих файлів або каталогів. Розуміння цих інструментів допоможе вам ефективніше керувати передачею файлів, особливо у віддаленому серверному середовищі.

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Use code at checkout:

Skills