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

watch 44s
views 2

09:01, 16.05.2024

Зміст статті
arrow

  • Огляд SSH і SFTP
  • Механізм роботи підсистеми SSH
  • Створення виконуваних файлів для підсистем
  • Налаштування підсистеми
  • Налаштування SFTP
  • Огляд команд SFTP
  • Основні команди для повсякденного використання
  • Оновлення та розширення функціональності SFTP
  • Спеціальні команди для спеціалізованих завдань
  • Перевірки сховища в середовищі SFTP
  • Висновок

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

Поділитися

Чи була ця стаття корисною для вас?

Популярні пропозиції VPS

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
Unlimited
KVM-HDD 2048 Linux

7.7

При оплаті за рік

-8.8%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
400 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 16384 Windows

45.66

При оплаті за рік

CPU
CPU
6 Epyc Cores
RAM
RAM
8 GB
Space
Space
100 GB NVMe
Bandwidth
Bandwidth
Unlimited
Keitaro KVM 8192
OS
CentOS
Software
Software
Keitaro

При оплаті за місяць

-10%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
40 GB HDD
Bandwidth
Bandwidth
Unlimited
KVM-HDD 1024 Linux

6.1

При оплаті за рік

-20.4%

CPU
CPU
2 Xeon Cores
RAM
RAM
2 GB
Space
Space
30 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 2048 HK Linux

18

При оплаті за рік

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
30 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-KVM-SSD 2048 Linux

30.3

При оплаті за рік

-10%

CPU
CPU
8 Xeon Cores
RAM
RAM
32 GB
Space
Space
200 GB SSD
Bandwidth
Bandwidth
12 TB
KVM-SSD 32768 Metered Linux

150

При оплаті за рік

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
50 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 4096 Linux

15.95

При оплаті за рік

-13.1%

CPU
CPU
2 Xeon Cores
RAM
RAM
512 MB
Space
Space
10 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 512 HK Linux

7

При оплаті за рік

-8.1%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
200 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 8192 Windows

31.25

При оплаті за рік

Інші статті на цю тему

cookie

Чи приймаєте ви файли cookie та політику конфіденційності?

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