Що таке протокол передачі файлів SSH (SFTP)
09:01, 16.05.2024
Безпека протоколу передачі даних завжди була важливою темою для багатьох користувачів. Саме тому старі протоколи, такі як FTPS і FTP, не користуються такою популярністю, як більш сучасний варіант - SFTP. SSH File Transfer Protocol - це чудовий варіант, який має безліч функцій і заснований на SSH.
У цій статті ми заглибимося в розуміння SFTP і поділимося кількома корисними рекомендаціями щодо перевірки обсягу сховища. Також ми обговоримо кілька корисних команд SFTP.
Огляд SSH і SFTP
Щоб отримати загальне уявлення про основні характеристики SFTP. Давайте обговоримо деякі важливі елементи, які виділяють цей протокол серед інших, а саме: безпека даних, управління файлами для віддалених і локальних систем, аутентифікація за ключами, перегляд каталогів на стороні сервера і клієнта, а також сумісність з більшістю операційних систем. Якщо говорити конкретно про безпеку передачі даних, то функціонування SFTP спирається на протокол SSH для шифрування і додаткового захисту.
У разі належної аутентифікації та авторизації SSH дозволяє виконувати будь-які необхідні команди в командній оболонці.
У той же час, якщо говорити конкретно про SFTP, то він має досить обмежену кількість доступних команд, які, очевидно, пов'язані з передачею файлів. SFTP є більш обмеженим по відношенню до SSH, ніж інші протоколи, тому його не слід розглядати як повністю окремий.
Механізм роботи підсистеми SSH
Підсистема може працювати за протоколом SSH як рівень абстракції. Давайте практично пояснимо, як це можна зробити за допомогою створення виконуваних файлів.
Створення виконуваних файлів для підсистем
Почнемо з простого скрипта і розмістимо його в /usr/lib/openssh/:
$ cat /usr/lib/openssh/xid.sh
#!/usr/bin/env bash
hostname
$ chmod +x /usr/lib/openssh/xid.sh
Налаштування підсистеми
Для налаштування системи скористаємося файлом /etc/ssh/sshd_config. Тут ми встановлюємо xid як підсистему:
$ cat /etc/ssh/sshd_config
[...]
# override default of no subsystems
Subsystem xid /usr/lib/openssh/xid.sh
[...]
Налаштування SFTP
Уточнимо, що SFTP-сервери також вважаються підсистемою SSH. Крім того, клієнти ssh і sftp майже еквівалентні при використанні -s sftp:
$ ssh [...] -s sftp
Огляд команд SFTP
Залежно від реалізації SFTP на сервері, є частини, які обмежуються лише SSH, і частини, які є SFTP. Це означає, що деякі з них інтегровано у sshd, а інші є окремими, наприклад, sftp-сервер.
Основні команди для повсякденного використання
Щоб переглянути всі основні команди, які підтримуються SFTP, ви можете скористатися довідкою. Набравши help у командному рядку sftp, ви побачите список з найбільш важливими пунктами про передачу, видалення файлів та багато іншого.
Ось декілька прикладів для перевірки:
- chmod [-h] mode path - змінити права доступу до файлу "path" на "mode
- version - переглянути поточну версію SFTP
- ? - цю команду можна використовувати замість довідки, і ви отримаєте той же результат
- chown [-h] own path - змінити власника файлу 'path' на 'own'
- bye - зупинити SFTP
- cd path - змінити віддалений директ на "шлях
- chgrp [-h] grp path - змінити групу файлу
- !command - виконати певну команду, яку ви вставляєте після '!' в локальній оболонці
Оновлення та розширення функціональності SFTP
Специфікації SFTP вже доступні в різних версіях, починаючи з 3-ї і закінчуючи 6-ю. Однак, як правило, OpenSSH та деякі інші SSH-сервери підтримують лише версію за замовчуванням або3-ю версію.
Звичайно, це не проблема, і ви можете легко замінити цю версію за замовчуванням на бажану, але в деяких сценаріях функціонування SSH та інших версій може бути неузгодженим. З іншого боку, версія 3 може належним чином полегшити будь-який необхідний код, тому це не є проблемою.
Спеціальні команди для спеціалізованих завдань
Оскільки цей тип протоколу функціонує на SSH-серверах, всі команди слід виконувати через ssh. Наприклад, щоб перевірити доступне сховище на сервері, скористайтеся наступною командою:
$ ssh jane@145.123.5.55 df
Перевірки сховища в середовищі SFTP
Перевірки сховища у середовищі SFTP є надзвичайно важливими з багатьох причин, але чомусь такі перевірки не включено до початкової версії цього протоколу.
З цієї причини ви можете використовувати реалізацію statvfs для цих перевірок. Отже, скористайтеся командою df таким чином:
sftp > df -h
Якщо говорити про 6-ту версію SFTP, то користувачі можуть перевіряти сховище одразу, без необхідності в попередньо описаній реалізації. Ось кілька програм, які можуть використовувати таку функціональність:
- WinSCP
- ProFTPD
- Bitvise
Використання будь-якого типу комбінації клієнт-сервер буде достатньо для того, щоб зв'язатися з перевіркою через певну функцію.
Висновок
У цій статті ми поділилися кількома практичними рекомендаціями та корисними командами для налаштування SFTP та його правильної роботи з SSH. Хоча не всі функцій цього протоколу реалізовано на більшості серверів, ви можете легко спробувати використовувати розширення.