Inštalácia a konfigurácia SFTP servera (SSH FTP) vo Windows na báze OpenSSH

Pomocou oficiálneho balíka OpenSSH pre Windows môžete ľahko zorganizovať bezpečnú výmenu súborov medzi klientom a servermi Windows pomocou protokolu zabezpečeného prenosu súborov. SFTP (Secure FTP). V tomto článku si ukážeme, ako používať Win32-OpenSSH na inštaláciu SFTP servera na Windows 10 alebo Windows Server 2016 / 2012R2..

obsah:

  • Funkcie SFTP
  • Implementácia SFTP v systémoch Windows
  • Inštalácia Win32 OpenSSH na Windows 10 1803 + / Windows Server 2019
  • Inštalácia Win32 OpenSSH na Windows Server 2016/2012 R2
  • Testovanie pripojenia SFTP pomocou WinSCP
  • Odstránenie služby WinS OpenSSH

Funkcie SFTP

protokol SFTP (Protokol zabezpečeného prenosu súborov , Zabezpečené FTP alebo FTP SSH) je rozšírenie protokolu SSH, ktorý je štandardom vo svete systémov UNIX / Linux. Aj keď je to z pohľadu používateľov podobné FTP, v skutočnosti je to úplne iný protokol, ktorý s FTP nemá nič spoločné. Dáta medzi klientom a serverom sa prenášajú na porte 22 cez tunel SSH.

Kľúčové výhody SFTP:

  • Súbory a príkazy sa prenášajú v rámci zabezpečenej relácie SSH;
  • Na prenos súborov a príkazov sa používa jedno pripojenie;
  • Podpora symbolických odkazov, prerušenia, obnovenia, prenosu, vymazania súborov atď.;
  • Spravidla je na kanáloch, kde FTP je pomalý alebo prerušovaný, spojenie SFTP spoľahlivejšie a rýchlejšie;
  • Autentifikácia pomocou kľúčov SSH.
Netreba zamieňať SFTP a FTPS. FTPS je v podstate bežný FTP s SSL certifikátom, zatiaľ čo SFTP je prenos FTP dát a príkazov v SSH.

Implementácia SFTP v systémoch Windows

V minulosti operačné systémy Windows nemali zabudované nástroje na organizovanie zabezpečeného servera SFTP. Na tieto účely sa zvyčajne používali otvorené alebo komerčné riešenia, napríklad Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch atď. Pred niekoľkými rokmi však spoločnosť Microsoft vydala svoju verziu portu OpenSSH pre win32. Tento projekt sa nazýva výhra32-OpenSSH.

Zvážte proces nastavenia servera SFTP v systéme Windows 10 a Windows Server 2016/2012 R2 pomocou balíka Win32-OpenSSH..

Inštalácia Win32 OpenSSH na Windows 10 1803 + / Windows Server 2019

V systéme Windows 10, počnúc zostavením 1803, a v systéme Windows Server 2019 je balík OpenSSH (ako RSAT) už súčasťou operačného systému vo forme funkcie na požiadanie (FoD)..

Vo Windows 10 a Windows Server 2019 môžete nainštalovať server OpenSSH pomocou rutiny PowerShell:

Prispôsobiteľnosť systému Windows -Online -Name OpenSSH.Server *

Alebo pomocou DISM:
dism / Online / Add-Capability /CapabilityName:OpenSSH.Server~~.0.0.0.0

Alebo môžete nainštalovať OpenSSH z GUI Windows 10 (nastavenie -> aplikácie -> Voliteľné funkcie -> Pridajte funkciu -> Otvorte ssh server -> inštalovať).

Spustiteľné súbory OpenSSH sú umiestnené v adresári:

c: \ windows \ system32 \ OpenSSH \

Konfiguračný súbor sshd_config je umiestnený v adresári C: \ ProgramData \ ssh (adresár sa vytvorí po prvom spustení služby).

Log - c: \ windows \ system32 \ OpenSSH \ logs \ sshd.log

Autorizovaný súbor kľúčov a kľúče sú uložené v priečinku% USERPROFILE% \. Ssh \.

Prečítajte si viac informácií o používaní OpenSSH na pripojenie k Windows 10 / Windows Server 2019 prostredníctvom zabezpečeného tunela SSH..

Inštalácia Win32 OpenSSH na Windows Server 2016/2012 R2

V predchádzajúcich verziách systému Windows 10 a Windows Server 2016/2012 R2 musíte stiahnuť a nainštalovať OpenSSH z GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases). Potrebujeme verziu pre 64-bitovú verziu systému Windows: OpenSSH-výhra64.zip (3,5 Mb).

  1. Rozbaľte obsah archívu do cieľového adresára, napríklad: C: \ OpenSSH-Win
  2. Spustíme príkazový riadok PowerShell s právami správcu a prejdeme do adresára OpenSSH:CD C: \ OpenSSH-Win
  3. Pridajte cestu k adresáru OpenSSH do premennej prostredia Cesta;
  4. Nainštalujte server OpenSSH: .\ install-sshd.ps1 (mala by sa zobraziť zelená správa „úspešne nainštalované služby sshd a ssh-agent“);
  5. Vygenerujte kľúče SSH pre server (potrebné na spustenie služby sshd):ssh-keygen.exe -A 
    ssh-keygen: generovanie nových hostiteľských kľúčov: RSA DSA ECDSA ED25519

    Ak sa vyskytne chyba

     ssh-keygen: generovanie nových hostiteľských kľúčov: RSA Nepodarilo sa uložiť váš verejný kľúč v __PROGRAMDATA __ \\ ssh / ssh_host_rsa_key.bxKmOcF49P: Žiadny taký súbor alebo adresár neexistuje

    , uistite sa, že je vytvorený adresár% programdata% \ ssh.

  6. Povoľte automatické spustenie pre službu SSHD a spustite ju pomocou nasledujúcich príkazov na správu služby PowerShell:Set-Service - meno sshd -StartupType 'Automatic'
    Start-Service sshd
  7. Pomocou PowerShell otvorte port TCP 22 v bráne Windows Firewall pre prichádzajúcu komunikáciu na server SSH:New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
  8. Otvorte konfiguračný súbor "C: \ ProgramData \ SSH \ sshd_config" v ľubovoľnom textovom editore, vyhľadajte a skontrolujte hodnotu smernice Subsystém sftp. Sem by mal byť uvedený súbor. sftp-server.exe. Zvážte užitočné smernice v konfiguračnom súbore sshd_config:
    AllowGroups corp \ admingroup # povoľuje prístup k OpenSSH iba pre používateľov z tejto skupiny AuthenticationMethods password # povoľuje autentifikáciu pomocou hesla (SSH kľúče nemožno použiť) ForceCommand internal-sftp # ChrootDirectory C: \ inetpub \ wwwroot \ ftpfolder # default adresár pre používateľov SFTP 

Testovanie pripojenia SFTP pomocou WinSCP

Skúsme sa pripojiť k serveru SSH, ktorý sme vyvinuli pomocou protokolu SFTP. Na tieto účely použijeme bezplatného klienta WinSCP.

V okne nastavení pripojenia vyberte protokol na prenos súborov SFTP, zadajte názov servera a údaje účtu Windows, pod ktorým je pripojenie nadviazané (je tiež možné nakonfigurovať autorizáciu kľúča).Pri prvom pripojení sa zobrazí okno s upozornením, že hostiteľský kľúč nie je v lokálnej vyrovnávacej pamäti.

Ak je všetko nakonfigurované správne, klient sa musí pripojiť k serveru SFTP a zobraziť zoznam súborov v domovskom adresári používateľa (štandardne je to adresár s profilom používateľa).

Pomocou známeho rozhrania pre správu súborov môžete bezpečne kopírovať súbory medzi serverom a klientom. Súbory budú prenášané pomocou zabezpečeného protokolu SFTP.

Odstránenie služby WinS OpenSSH

Ak chcete správne odstrániť službu Win32 OpenSSH zo systému:

  1. Otvorte správcovskú konzolu Powershell
  2. Zastaviť službu SSHD:Stop-Service sshd
  3. Odstráňte službu OpenSSD: Odstráňte kľúče:.\ uninstall-sshlsa.ps1
    sshd úspešne odinštalovaný ssh-agent úspešne odinštalovaný