Віддалене керування комп’ютером – це можливість керувати комп’ютером та використовувати його функції на відстані, за допомогою іншого комп’ютера, смартфона або пульта. Ця відстань може сягати від кількох метрів до тисячі кілометрів. Віддалене керування комп’ютером неможливе без застосування спеціального програмного забезпечення – програм віддаленого керування. Це програми або функції операційних систем, що дозволяють отримати віддалений доступ до комп’ютера і здійснювати керування та адміністрування віддаленого комп’ютера в реальному часі. Програми віддаленого адміністрування надають майже повний контроль над віддаленим комп’ютером: вони дають можливість дистанційно керувати робочим столом комп’ютера, можливість копіювання або видалення файлів, запуску додатків тощо. Воно корисно для багатьох сценаріїв, наприклад, для віддаленого доступу до комп’ютера з будь-якої точки світу, для навчання, допомоги технічно незгідним користувачам або для роботи з комп’ютером, який знаходиться в іншому місці.
Пакет OpenSSH включає дві програми, які використовують зашифрований тунель SSH для копіювання файлів через мережу. Перша програма – scp («безпечне копіювання») схожа на програму cp для копіювання файлів. Друга програма для копіювання файлів через SSH – це sftp. Як випливає з її імені, вона є безпечним замінником ftp програм. sftp працює як і оригінальна ftp програма. Проте замість відправлення даних у вигляді простого тексту вона використовує зашифрований тунель SSH. Важливою перевагою sftp перед ftp є те, що для неї не потрібний запущений сервер FTP на віддаленому хості. Для неї потрібний лише SSH сервер. Це означає, що будь-яка віддалена машина, на якій запущено SSH сервер, також може бути використана як FTP-подібний сервер.
- працюють через SSH з’єднання
- передають дані зашифрованими каналами
- не вимагають спеціального сервера або програм на дистанційній машині крім SSH сервера
- використовують усі можливості SSH, наприклад, автентифікацію за публічним ключем і стиснення даних, що передаються.
- популярні файлові менеджери розуміють протокол sftp і можуть інтегруватися з цією командою
- sftp підтримує пакетний режим – файли, в яких послідовність дій визначена послідовністю команд sftp
- при рекурсивному скачуванні або закачуванні папок, за умовчанням scp слід за символічними посиланнями, а sftp – ні
- sftp вміє дописувати частково передані файли, якщо відбувся обрив під час передачі великого файлу (налаштовується опцією)
- scp не працює в інтерактивному режимі, а sftp вміє працювати в інтерактивному режимі та в автоматичному в інтерактивному режимі
- sftp підтримує синтаксис FTP команд для різних дій у файловій системі (копіювання та переміщення файлів, створення та видалення файлів та папок тощо)
Утиліта scp дуже схожа на програму cp, яка копіює файли в межах локального комп’ютера. Важливо зрозуміти ключову суть синтаксису scp:
Тобто всього є три елементи у команді. В якості вихідного файлу може бути як файл на локальній системі, так і на віддаленій. Аналогічно, як пункт-призначення може бути як файл на локальній системі, так і на віддаленій. Шлях до локального файлу вказується звичайним способом – так само, як і з програмою cp.
Файл на віддаленій системі може бути вказаний так:
Або у вигляді URI у формі:
Отже, якщо ми копіюємо файл із віддаленої системи на локальну, загальний вигляд команди такий:
Як ./ШЛЯХ/У/ЛОКАЛЬНІЙ/СИСТЕМІ можна вказати просто . (точку) і тоді файл буде скопійовано з поточним ім’ям до поточного робочого каталогу.
Якщо ми копіюємо файл із локальної системи на віддалену, загальний вигляд команди такий:
Синтаксис звернення до віддаленого хоста схожий на SSH: КОРИСТУВАЧ@ХОСТ, відмінність тільки в тому, що після двокрапки вказується шлях до файлу (або просто ім’я файлу). При використанні URI після двокрапки вказується порт (якщо він відрізняється від стандартного), а шлях до файлу вказується після слеша. Розглянемо приклад виконання команди на віддаленій системі та завантажуємо цей файл на локальну систему:
У scp команді ВИХІДНИЙ-ФАЙЛ позначений як [email protected]:dirlist.txt – тут до двокрапки йде ім’я користувача на віддаленій системі та адреса хоста – та інформація, яка необхідна для підключення по SSH. Потім двокрапкою відокремлений файл, який має бути завантажений. ПУНКТ-ПРИЗНАЧЕННЯ у цій команді позначений як . (точка) – що означає поточну робочу директорію (у локальній системі).
Тепер розглянемо приклад копіювання файлу з локальної машини на віддалену:
- nfile.txt – ім’я файлу,
- [email protected] – ім’я користувача та віддалений хост (як у команді підключення по SSH),
- . (точка) означає, що файл потрібно скопіювати в поточну робочу директорію на віддаленому сервері, при цьому ім’я файлу залишиться незмінним, тобто nfile.txt
Для рекурсивного копіювання цілих директорій використовують опція -r. Пам’ятайте, що scp слідує за символічними посиланнями, які зустрічаються при обході дерева каталогів.
За допомогою опції -p (не плутайте її з опцією -P, яка змінює порт підключення), можна зберегти час модифікації, час останнього доступу до файлу та режими оригінального файлу.
За промовчанням передача файлу відбувається на максимально можливій швидкості. Якщо з якихось причин потрібно зменшити ліміт швидкості, використовуйте опцію -l, після якої вкажіть значення в Kbit/s.
Вказати інший порт можна за допомогою опції -P ПОРТ. Зверніть увагу, що ця опція написана великою ‘P’, оскільки -p вже зайнята для іншого налаштування (зберігає час та режими файлу).
Також ми можемо скопіювати файл з одного віддаленого хоста на інший віддалений хост. Програма scp вміє копіювати між двома віддаленими хостами. Якщо використовується URI формат, порт можна вказати тільки для цілі, якщо використовується опція -3. За замовчуванням дані копіюються безпосередньо між двома віддаленими хостами. Якщо вказати опцію -3, дані між двома хостами будуть передані через локальний хост. Ця опція вимикає шкалу прогресу.
Ще ми можемо використовувати інший файл налаштування для scp та вказати файл ключів автентифікації. Програма scp працює разом із ssh, тобто підключення відбувається за допомогою ssh та застосовуються всі налаштування цієї програми. ssh має свої параметри за замовчуванням, а також вона зчитує інформацію зі своїх конфігураційних файлів. При бажанні можна вказати інший файл для використання, це робиться опцією -F – вона задає альтернативний конфігураційний файл користувача для ssh. Ця опція безпосередньо передається до ssh. Якщо налаштовано вхід без пароля (за ключом), програма ssh зчитує приватний ключ відповідно до своїх налаштувань або зі шляху за замовчуванням. За допомогою опції -i можна вибрати інший файл із ідентифікатором (приватний ключ) для автентифікації за публічним ключем на сервері. Ця опція також передається безпосередньо в ssh.
Вимкнення суворої перевірки імен файлів можна зробити завдяки опції -T. За замовчуванням при копіюванні файлів з віддаленого хоста в локальний каталог scp перевіряє, чи відповідні імена файлів відповідають тим, які запитуються в командному рядку, щоб запобігти відправленню віддаленим хостом несподіваних або небажаних файлів. Через відмінності в тому, як різні операційні системи та оболонки інтерпретують символи підстановки імені файлу, ці перевірки можуть призвести до відхилення потрібних файлів. Ця опція відключає ці перевірки за рахунок повної довіри, що сервер не надсилатиме несподівані імена файлів.
Опція -q включає тихий режим: відключає шкалу прогресу, а також попередження та діагностичні повідомлення від ssh.
Адресат може бути вказаний як [КОРИСТУВАЧ@]ХОСТ[:ШЛЯХ] або як URI у формі sftp://[КОРИСТУВАЧ@]ХОСТ[:ПОРТ][/ШЛЯХ] Якщо місце призначення містить ШЛЯХ, який є каталогом, sftp автоматично отримає файли, якщо використовується неінтерактивний метод аутентифікації; в іншому випадку це буде зроблено після успішної інтерактивної автентифікації. Якщо шлях не вказано або шлях є каталогом, sftp увійде до системи на вказаному хості і перейде в інтерактивний командний режим, зайшовши у віддалений каталог, якщо він був вказаний. Додаткова кінцева коса характеристика може використовуватися, щоб примусово інтерпретувати шлях як каталог.
При вході в інтерактивний режим sftp розуміє набір команд, схожих з командами для ftp(1). Команди не чутливі до регістру. Шляхи та імена файлів, які містять пробіли, повинні бути поміщені в лапки. Будь-які спеціальні символи, що містяться всередині імен шляхів, що розпізнаються в glob(3), мають бути екрановані зворотним слешем (”).
SCP та SFTP є не тільки утилітами, а й протоколами. Тобто інші програми можуть підтримувати роботу з ними та використовуватися як зручний графічний інтерфейс. Завдяки цьому ви зможете керувати файлами на сервері, наприклад через FileZilla або звичні файлові менеджери.