Як встановити з'єднання з SFTP-сервером

Як встановити з'єднання з SFTP-сервером

07:24, 26.04.2021

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

  • Що таке SFTP?
  • Як налаштувати SFTP?
  • Налаштування сервера протоколу передачі файлів SSH в Linux
  • Налаштування сервера з протоколом передачі файлів SSH під Windows
  • Замість P.S.

Неможливо уявити роботу з віддаленим сервером без захищеної системи передачі файлів між системою і користувачем - і без SFTP тут важко обійтися. Щоб протокол працював належним чином, дуже важливо правильно налаштувати SFTP в різних версіях Linux і Windows. У цій статті ми покажемо вам, як це зробити швидко і просто.

Що таке SFTP?

SSH File Transfer Protocol - саме так розшифровується абревіатура SFTP. Повна назва чітко показує головну особливість протоколу: він заснований на технології Secure Shell. Це гарантує, що передача всієї інформації буде зашифрована, від файлів до імен користувачів і паролів. Навіть у FTPS (FTP з SSL), не кажучи вже про звичайний FTP, існує більше обмежень. До речі, якщо заглиблюватися в деталі, то SFTP взагалі не має відношення до FTP: у них різні технологічні основи.

Окрім високої безпеки, протокол передачі файлів SSH має й інші переваги:

  • єдине з'єднання для надсилання файлів і команд;
  • можливість переривати та відновлювати надсилання файлів, а також видаляти файли;
  • підтримка символічних посилань, списків каталогів та інших функцій;
  • дещо швидший і стабільніший зв'язок та робота;
  • автентифікація доступна через SSH-ключ, що означає відсутність інформації про власника.

Слід також зазначити, що протокол SFTP використовується в UNIX-системах, і часто стандартні утиліти вже мають як SSH-клієнт, так і SSH-сервер.

Як налаштувати SFTP?

Встановлення та налаштування протоколу передачі файлів SSH не є надто складним, але розповідь можна розділити на два напрямки - в залежності від операційної системи, яка використовується.

Налаштування сервера протоколу передачі файлів SSH в Linux

Спочатку необхідно встановити пакет SSH на стороні сервера OpenSSH і на стороні користувача. Перше завдання вирішується за допомогою наступних команд:

  • Ubuntu і Debian: sudo apt install openssh-server
  • CentOS і RHEL: sudo yum -y install openssh-server openssh-clients

А щоб організувати доступ з комп'ютера, потрібна наступна команда:

  • sudo apt install ssh

Після цього можна переходити безпосередньо до налаштування SFTP. Всю роботу варто розділити на кілька етапів:

1.Створення груп і користувачів. Створюючи користувачів і розбиваючи їх на групи, ви можете налаштувати їх права, можливості та обмеження доступу до певного каталогу на сервері. Для цього необхідно виконати наступні дії:

  • створити групу: sudo groupadd GROUPNAME
  • додайте користувача до групи: sudo useradd -g GROUPNAME USERNAME
  • встановити пароль користувача: sudo passwd PASSWORD

2. Створення каталогів. Якщо на сервері є кореневий каталог (назвемо його, наприклад, "каталог"), кожен користувач може мати доступ лише до певної "власної папки", тобто тієї, до якої він потрапляє при вході в систему. У цьому випадку ви можете налаштувати SFTP так, щоб користувач міг бачити вміст папки, але файл завантажувався в окремий розділ (наприклад, "loadfolder"). Вам знадобляться наступні команди:

sudo mkdir -p / catalog / USERNAME/loadfolder
sudo chown -R root.GROUPNAME/catalog/USERNAME
sudo chown -R USERNAME/GROUPNAME/catalog/USERNAME/loadfolder

3. Налаштуйте sshd_config. Це необхідно з двох причин. З одного боку, у користувача буде відкритий SFTP (а не звичайна оболонка SSH). З іншого боку, він не зможе вирівняти каталог і побачити розділи інших користувачів. Для цього додайте до файлу /etc/ssh/sshd_config наступний код:

Match Group GROUPNAME
      ChrootDirectory/catalog/% u
      ForceCommand internal-sftp

4. Перезавантаження. Для того, щоб вся система запрацювала, залишилося перезавантажитися:

  • sudo systemctl restart sshd

На цьому все - налаштування Linux SFTP завершено! Вхід аналогічний за допомогою команди в SSH. Використовуйте спеціальний синтаксис для керування вмістом сервера:

КОМАНДА [ДЖЕРЕЛО] [ПРИЗНАЧЕННЯ] 

Це деякі з найпоширеніших прикладів:

  • завантаження з віддаленого сервера на локальний: GET photo1.jpg ~/ЗРhotos
  • завантажити з локальної на віддалену: PUT ~/prices/price.pdf uploadfolder/
  • видалити файл з віддаленого сервера: RM upload_folder/ file_325.xlsx

Налаштування сервера з протоколом передачі файлів SSH під Windows

Спочатку настільні та серверні операційні системи Microsoft не підтримували SFTP, тому для роботи з ним були потрібні сторонні інструменти. Але сьогодні існує офіційний пакет для цих завдань: Win32-OpenSSH. Запуск і налаштування залежать від версії встановленої у вас операційної системи.

1. Windows Server 2019 або Windows 10 1803+

Ці варіанти ОС Microsoft пропонують найпростіший сценарій запуску SFTP-сервера, оскільки Win32-OpenSSH вже є їх частиною. Існує два способи встановлення:

  • через PowerShell: задайте команду типу Add-WindowsCapability -Online -Name OpenSSH.Server *.
  • через інтерфейс: Конфігурація "Додатки" Додаткові функції "Додати функцію" Відкрити SSH-сервер "Встановити

Залишилося з'ясувати адреси, за якими вони будуть розташовані:

  • виконувані файли: C:\Windows\System32\OpenSSH\
  • конфігураційний файл: C:\ProgramData\sshsh\
  • реєстр: C:\Windows\System32\OpenSSH\Logsshd.log
  • паролі:%USERNAME%\.ssh\

2. Windows Server 2016/2012 R2

На цій ОС, як і на перших версіях Windows 10, для налаштування SFTP потрібно завантажити OpenSSH: шукайте версію для 64-бітної системи на GitHub. Розпакувавши архів у потрібний каталог (наприклад, C:\catalog_OpenSSH), потрібно виконати низку кроків:

  • Відкрийте PowerShell від імені адміністратора і перейдіть до цільового каталогу, який ви створили раніше за допомогою команди Cd C:\catalog_OpenSSH. Шлях до нього слід додати до змінної оточення Path.
  • Почніть установку командою \Install-sshd.ps1 (успіх буде підтверджено повідомленням з зеленими літерами). Після цього необхідно згенерувати ключі для запуску служби SSH, вказавши: ssh-keygen.exe -A
  • У PowerShell запустіть автозапуск служби SSH двома послідовними командами: Set-Service -Name sshd -StartupType 'Automatic', а потім Start-Service sshd з нового рядка.
  • Відкрийте TCP-порт 22 для вхідного трафіку на SSH-сервер. Це можна зробити на брандмауері через PowerShell командою New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
  • Відкрийте конфігураційний файл (знаходиться в C:\ProgramData\SSH\) і переконайтеся, що потрібний файл правильно вказано в директиві sftp Subsystem - тобто sftp-server.exe.

Після налаштування SFTP в Windows залишається лише внести деякі зміни до конфігураційного файлу. Ось кілька стандартних прикладів:

  • AllowGroups corp\admingroup # Дозволити користувачам вказаної групи доступ до OpenSSH.
  • AuthenticationMethods password # заборонити ключі SSH (доступ буде лише за паролем користувача)
  • ForceCommand internal-sftp # ForceCommand internal-sftp #
  • ChrootDirectory C:\inetpubwwwrootftpfolder # створює та встановлює каталог входу для користувача SFTP

Після всіх налаштувань запускаємо SFTP-клієнт (наприклад, WinSCP), вводимо тип і ім'я сервера, облікові дані на ньому - і авторизуємося (при першому підключенні повинно з'явитися повідомлення, що ключ хоста відсутній в кеші). Якщо відкриється звичний інтерфейс файлового менеджера з каталогом користувача на сервері, то все налаштовано правильно!

Замість P.S.

Практика показує: хоча налаштування SFTP досить просте, у багатьох випадках у користувачів виникають різні нестандартні питання і ситуації. Щоб розібратися в них, варто подумати про компетентну допомогу - у вигляді професійної технічної підтримки від провайдера. Ми в HostZealot приділяємо їй максимальну увагу. Незалежно від того, чи замовляєте ви VPS для Windows або Linux, ви можете розраховувати на консультацію наших фахівців - вони допоможуть вам не тільки з налагодженням протоколу передачі файлів SSH, але і з будь-якими іншими завданнями конфігурації на вашому сервері!

views 1m, 17s
views 2
Поділитися

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

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

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

cookie

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

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