Инсталиране и конфигуриране на SFTP сървър (SSH FTP) в Windows на базата на OpenSSH

Използвайки официалния пакет OpenSSH за Windows, можете лесно да организирате защитена обмяна на файлове между клиента и сървърите на Windows, като използвате защитен протокол за прехвърляне на файлове SFTP (Secure FTP). В тази статия ще покажем как да използвате Win32-OpenSSH за инсталиране на SFTP сървър на Windows 10 или Windows Server 2016 / 2012R2.

Съдържание:

  • SFTP функции
  • Внедряване на SFTP на Windows системи
  • Инсталиране на Win32 OpenSSH на Windows 10 1803 + / Windows Server 2019
  • Инсталиране на Win32 OpenSSH на Windows Server 2016/2012 R2
  • Тестване на SFTP връзка с помощта на WinSCP
  • Премахване на услугата Win32 OpenSSH

SFTP функции

протокол SFTP (Защитен протокол за прехвърляне на файлове , Сигурен FTP или SSH FTP) е разширение на SSH протокола, което е стандартът в света на UNIX / Linux системите. Въпреки че от гледна точка на потребителите той е подобен на FTP, но в действителност това е съвсем различен протокол, който няма нищо общо с FTP. Данните между клиента и сървъра се предават на порт 22 през тунела SSH.

Основни предимства на SFTP:

  • Файлове и команди се прехвърлят в рамките на сигурна SSH сесия;
  • Единична връзка се използва за прехвърляне на файлове и команди;
  • Поддръжка на символни връзки, прекъсване, възобновяване, прехвърляне, изтриване на файлове и др .;
  • Като правило, при канали, където FTP е бавен или прекъсващ, SFTP връзката е по-надеждна и по-бърза;
  • Удостоверяване с SSH ключове.
Няма нужда да бъркате SFTP и FTPS. FTPS е по същество обикновен FTP със SSL сертификат, докато SFTP е прехвърляне на FTP данни и команди вътре в SSH.

Внедряване на SFTP на Windows системи

В исторически план на операционните системи Windows липсваха вградени инструменти за организиране на защитен SFTP сървър. За тези цели обикновено се използват отворени или търговски решения, например Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch и т.н. Въпреки това, преди няколко години Microsoft пусна своята версия на OpenSSH порта за win32. Този проект се нарича печалба32-OpenSSH.

Обмислете процеса на настройка на SFTP сървър в Windows 10 и Windows Server 2016/2012 R2 с помощта на пакета Win32-OpenSSH.

Инсталиране на Win32 OpenSSH на Windows 10 1803 + / Windows Server 2019

В Windows 10, като започнете от сглобяване 1803, и в Windows Server 2019, OpenSSH пакетът (като RSAT) вече е включен в операционната система под формата на Feature on Demand (FoD).

В Windows 10 и Windows Server 2019 можете да инсталирате OpenSSH сървъра с помощта на командлета PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server *

Или използвайте DISM:
dism / Онлайн / Възможност за добавяне / ВъзможностName:OpenSSH.Server~~.0.0.0.0

Или можете да инсталирате OpenSSH от GUI на Windows 10 (Настройки -> Apps -> Допълнителни функции -> Добавете функция -> Отворете ssh сървъра -> инсталирам).

Изпълними файлове на OpenSSH се намират в директорията:

c: \ windows \ system32 \ OpenSSH \

Конфигурационният файл sshd_config се намира в директорията C: \ ProgramData \ ssh (директорията се създава след първото стартиране на услугата).

Влезте - c: \ windows \ system32 \ OpenSSH \ logs \ sshd.log

Файлът и ключовете с разрешените ключове се съхраняват в% USERPROFILE% \. Ssh \.

Научете повече за използването на OpenSSH за свързване към Windows 10 / Windows Server 2019 чрез защитен SSH тунел..

Инсталиране на Win32 OpenSSH на Windows Server 2016/2012 R2

В предишните версии на Windows 10 и в Windows Server 2016/2012 R2 трябва да изтеглите и инсталирате OpenSSH от GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases). Нуждаем се от версия за 64-битова версия на Windows: OpenSSH-печалба64.zip (3.5 Mb).

  1. Разопаковайте съдържанието на архива в целевата директория, например: C: \ OpenSSH-Win
  2. Стартираме командния ред PowerShell с права на администратор и отиваме в директорията OpenSSH:Cd C: \ OpenSSH-Win
  3. Добавете пътя към директорията OpenSSH към променливата на средата Path;
  4. Инсталиране на OpenSSH сървър: .\ install-sshd.ps1 (зеленото съобщение „sshd и ssh-агент услуги са успешно инсталирани“);
  5. Генерирайте SSH ключове за сървъра (необходими за стартиране на sshd услугата):ssh-keygen.exe -A 
    ssh-keygen: генериране на нови хост ключове: RSA DSA ECDSA ED25519

    Когато възникне грешка

     ssh-keygen: генериране на нови ключове за хост: RSA Не можа да запази публичния си ключ в __PROGRAMDATA __ \\ ssh / ssh_host_rsa_key.bxKmOcF49P: Няма такъв файл или директория

    , уверете се, че е създадена директория% programdata% \ ssh.

  6. Активирайте автозапускането за SSHD услугата и я стартирайте, като използвате следните команди за управление на услугата PowerShell:Set-Service -Name sshd -StartupType 'Automatic'
    Start-Service sshd
  7. Използвайте PowerShell, отворете TCP порт 22 в защитната стена на Windows за входящ трафик към SSH сървъра:New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
  8. Отворете конфигурационния файл "C: \ ProgramData \ SSH \ sshd_config" във всеки текстов редактор, намерете и проверете стойността на директивата Подсистема sftp. Файлът трябва да бъде посочен тук. SFTP-Server.exe. Помислете за полезните директиви в конфигурационния файл sshd_config:
    AllowGroups corp \ admingroup # позволяват достъп до OpenSSH само за потребители от тази група AuthenticationMethods парола # активиране на паролата (SSH ключовете не могат да се използват) ForceCommand Internal-sftp # ChrootDirectory C: \ inetpub \ wwwroot \ ftpfolder # директория по подразбиране за потребители на SFTP 

Тестване на SFTP връзка с помощта на WinSCP

Нека се опитаме да се свържем със SSH сървъра, който издигнахме с помощта на протокола SFTP. За тези цели ще използваме безплатен клиент WinSCP.

В прозореца за настройки на връзката изберете протокола за прехвърляне на файлове SFTP, посочете името на сървъра и данните на акаунта в Windows, под който се осъществява връзката (възможно е да се конфигурира и авторизация на ключ).Когато се свържете за първи път, се появява прозорец с предупреждение, че хост ключът не е в локалния кеш.

Ако всичко е конфигурирано правилно, клиентът трябва да се свърже към SFTP сървъра и да покаже списък с файлове в домашната директория на потребителя (по подразбиране директорията с потребителския профил).

Използвайки познатия интерфейс за управление на файлове, можете безопасно да копирате файлове между сървъра и клиента. Файловете ще бъдат прехвърлени чрез защитен SFTP протокол.

Премахване на услугата Win32 OpenSSH

За да премахнете правилно услугата Win32 OpenSSH от системата:

  1. Отворете администраторската конзола на Powershell
  2. Спрете SSHD услугата:Stop-Service sshd
  3. Премахване на услугата OpenSSD: Извадете ключовете:.\ uninstall-sshlsa.ps1
    sshd успешно деинсталиран ssh-агент успешно деинсталиран