Content
Встановлення, тестування та видалення SFTP-сервера на основі OpenSSH у Windows
Покрокова інструкція
Встановлення та налаштування SFTP-сервера (SSH FTP)
Спочатку потрібно завантажити та встановити OpenSSH з GitHub:
https://github.com/PowerShell/...
Завантажуємо архів: OpenSSH-Win64.zip
1) Розпакуйте вміст архіву в цільову директорію, наприклад:"C:\Windows"

2) Відкрийте властивості системи(WIN+R, команда "sysdm.cpl") -> Додатково -> Змінні середовища
Вікно, що з'явиться, має дві секції: верхня містить змінні середовища користувача, нижня - системні змінні.
У системних змінних виберіть змінну"Шлях", натисніть на кнопку"Змінити...".

3) У вікні, що відкрилося, натисніть"Створити" і введіть шлях до каталогу OpenSSH з кроку 1, в цьому прикладі:"C:\Windows\OpenSSH-Win64"

4) Запустіть"PowerShell" від імені адміністратора:
Пуск, введіть"PowerShell" → Клацніть правою кнопкою миші на"PowerShell" → Запустити від імені адміністратора

5) Перейдіть до каталогу OpenSSH, в цьому прикладі:"C:\Windows\OpenSSH-Win64"
cd C:\Windows\OpenSSH-Win64
Встановіть сервер OpenSSH:
(повинно з'явитися зелене повідомлення "служби sshd і ssh-agent успішно встановлено");
.\Install-sshd.ps1
Увімкніть автозапуск для служби SSHD:
Set-Service -Name sshd -StartupType ‘Automatic’
Відкрийте TCP-порт 22 у брандмауері Windows для вхідного трафіку на SSH-сервер:
New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
Налаштуйте власника файлу та права доступу: (Відповідайте на кожне питання"Y")
.\FixHostFilePermissions.ps1

6) Відкрити список служб(WIN+R, команда"services.msc") -> Двічі клацнути на"OpenSSH SSH Server" → Встановити тип запуску:"Автоматичний", натиснути на "Запустити" → ОК

Перевірка SFTP-з'єднання за допомогою WinSCP
Завантажте та запустіть безкоштовний клієнт WinSCP.
У вікні налаштувань підключення виберіть протокол передачі файлів SFTP, вкажіть ім'я сервера і дані облікового запису Windows, під яким ви підключаєтеся

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

Видалення служби Win32 OpenSSH
Щоб коректно видалити службу Win32 OpenSSH з системи:
1) Запустіть"PowerShell" від імені адміністратора:
Пуск, введіть"PowerShell" → Клацніть правою кнопкою миші на"PowerShell" → Запустити від імені адміністратора

2) Перейдіть до каталогу OpenSSH, в цьому прикладі: "C:\Windows\OpenSSH-Win64"
cd C:\Windows\OpenSSH-Win64
3) Зупиніть службу SSHD:
Stop-Service sshd
4) Видаліть службу OpenSSD:
.\uninstall-sshd.ps1

Проблеми з налаштуванням OpenSSH в системі Windows і як їх вирішити
Налаштування OpenSSH у Windows може бути дещо складним, особливо після оновлень Windows, випущених після жовтня 2024 року, оскільки вони можуть впливати на роботу OpenSSH. Якщо ви зіткнулися з проблемами OpenSSH, наприклад, такими як помилка 1067 або неможливість підключення, встановіть оновлення Windows KB5052093 (лютий 2025 року). Це оновлення містить виправлення для проблем, спричинених оновленнями жовтня 2024 року. Перевірте його наявність у «Параметрах» → «Оновлення та безпека» → «Центр оновлення Windows» (включно з необов’язковими оновленнями). Перед встановленням створіть точку відновлення системи на випадок непередбачених проблем. Крім того, для вирішення більшості проблем скористайтеся рішеннями з наступної таблиці.
Проблема | Причина | Рішення |
---|---|---|
Служба не запускається (помилка 1067) | Зміна прав доступу до C:\ProgramData\ssh\logs | Залишити лише SYSTEM та Адміністратори з повним доступом |
Неможливо підключитися | Брандмауер блокує порт 22 | Додати правило в брандмауер для порту 22 |
Помилки аутентифікації | Неправильні облікові дані або налаштування ключів | Перевірити облікові дані, додати PubkeyAcceptedAlgorithms +ssh-rsa у файл sshd_config |
Служба в стані "installpending" | Неповна установка | Перевстановити OpenSSH, видалити папку C:\Windows\System32\OpenSSH |
Проблеми із зовнішнім підключенням | Порт 22 блокується маршрутизатором | Налаштувати перенаправлення порту 22 |
Зависання сесій SSH | Помилки в OpenSSH або налаштуваннях клієнта | Оновити OpenSSH, перевірити налаштування клієнта |