Стандартом де факто, серед програм, які використовуються для адміністрування Linux, FreeBSD та інших UNIX серверів є SSH. Але, крім надання доступу до командної оболонки віддаленого сервера, SSH надає можливість передавати по мережі файли, використовуючи захищений канал зв'язку - за допомогою утиліти SCP. Дана утиліта дозволить копіювати файли на віддалені хости не тільки інтерактивно, але і за розкладом, за допомогою скриптів, наприклад при створенні резервних копій, синхронізації папок і так далі.
Як копіювати файли за допомогою SCP
Отже, для отримання довідки по роботі з програмою SCP виолніте команду man scp
Серед інших параметрів, зверніть увагу на параметри виду:
Де file1 - ісходний_файл, а file2 -целевой_файл. Ті частини параметра, які перераховані в квадратних дужках, можна опустити, то-есть команду SCP можна скоротити до виду:
Що буде рівносильно копіювання файлу в межах локального комп'ютера. Також, зверніть увагу, що файли можна копіювати не тільки між локльним і віддаленим хостом, але також і між двома віддаленими хостами.
Тепер давайте розберемося як правильно написати параметри підключення:
Як бачите, замість того, щоб писати повний шлях до своєї домашньої директорії, я написав символ
що рівносильно написання повного шляху до моєї домашньої директорії / home / alex. До віддаленого хосту 192.168.1.101 я також підключаюся з обліковим записом alex і розміщую файл на робочому столі:
/Desktop/file1.iso, що рівносильно написання /home/alex/Desktop/file1.iso. Так само, ви можете скопіювати файли з віддаленого хоста на локальний комп'ютер:
Для того, щоб рекурсивно скопіювати вміст директорії, слід використовувати ключ -r. зверніть увагу на нижній регістр, це має значення.
Після того, як ми розібралися, як працює програма SCP, давайте налаштуємо роботу без необхідності вводити пароль.
Як налаштувати роботу SSH і SCP для роботи без пароля
В основі роботи SSH закладено використання асиметричний шифрування, суть якого полягає в тому, що є пара ключів, відкритий і секретний, відкритий ключ може використаний для того, щоб зашифрувати дані, а закритий розшифрувати. Зворотна дія навиполнімо. Для генерації крипто пари, виконайте команду:
На питання введення ключової фрази нічого не вводьте, а натисніть Ентер два рази (другий раз для підтвердження). В результаті виконання команди, в директорії
/.ssh/ з'являться два файли:
- Секретний ключ id_rsa. Слід зберігати його виключно на локальному комп'ютері, подалі від сторонніх очей.
- Відкритий ключ id_rsa.pub. Цей файл можна передавати будь-кому, це ніяк не позначиться на вашій безопасноти.
/.ssh/authorized_keys повинен знаходитися ваш відкритий ключ. Для копіювання відкритого ключа на віддалений сервер виконайте команду:
Ще одне зауваження. якщо на віддаленому сервері вже є файл
/.ssh/authorized_keys, то замість виконання команди, зазначеної вище, слід виконати команди такого вигляду:
Виконання цих команд додасть ваш відкритий ключ в кінець файлу
/.ssh/authorized_keys і знову вивантажить його на віддалений сервер.