Що таке протокол передачі файлів SSH (SFTP)

Що таке протокол передачі файлів SSH (SFTP)

16.05.2024
Автор: HostZealot Team
2 мін.
124

Безпека протоколу передачі даних завжди була важливою темою для багатьох користувачів. Саме тому старі протоколи, такі як 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. Хоча не всі функцій цього протоколу реалізовано на більшості серверів, ви можете легко спробувати використовувати розширення.

# Хостинг Поділитися:
Статті за темою