Namestitev in konfiguracija strežnika SFTP (SSH FTP) v operacijskem sistemu Windows, ki temelji na OpenSSH

Z uradnim paketom OpenSSH za Windows lahko enostavno organizirate varno izmenjavo datotek med odjemalcem in Windows strežniki s pomočjo varnega protokola za prenos datotek SFTP (Varno FTP). V tem članku bomo pokazali, kako z Win32-OpenSSH uporabiti namestitev SFTP strežnika na Windows 10 ali Windows Server 2016 / 2012R2.

Vsebina:

  • Funkcije SFTP
  • Izvajanje SFTP v sistemih Windows
  • Namestitev programa Win32 OpenSSH v sistem Windows 10 1803 + / Windows Server 2019
  • Namestitev programa Win32 OpenSSH na Windows Server 2016/2012 R2
  • Testiranje SFTP povezave z uporabo WinSCP
  • Odstranjevanje storitve Win32 OpenSSH

Funkcije SFTP

Protokol SFTP (Varni protokol za prenos datotek , Varno FTP ali SSH FTP) je razširitev protokola SSH, ki je standard v sistemu sistemov UNIX / Linux. Čeprav je s stališča uporabnikov podoben FTP, v resnici pa gre za povsem drugačen protokol, ki nima nobene zveze s FTP. Podatki med odjemalcem in strežnikom se prenašajo na vrata 22 prek tunela SSH.

Ključne prednosti SFTP:

  • Datoteke in ukazi se prenesejo znotraj varne seje SSH;
  • Posamezna povezava se uporablja za prenos datotek in ukazov;
  • Podpora za simbolične povezave, prekinitev, nadaljevanje, prenos, brisanje datotek itd.;
  • Praviloma je na kanalih, kjer je FTP počasen ali presihajoč, povezava SFTP zanesljivejša in hitrejša;
  • Preverjanje pristnosti s SSH ključi.
SFTP in FTPS ni treba zamenjati. FTPS je v bistvu navadni FTP s SSL certifikatom, SFTP pa je prenos podatkov FTP in ukazov znotraj SSH.

Izvajanje SFTP v sistemih Windows

V preteklosti v operacijskih sistemih Windows ni bilo vgrajenih orodij za organizacijo varnega strežnika SFTP. V te namene so se običajno uporabljale odprte ali komercialne rešitve, na primer Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch itd. Vendar je pred nekaj leti Microsoft izdal svojo različico vrat OpenSSH za win32. Ta projekt se imenuje Zmagajte32-opensh.

Razmislite o postopku nastavitve strežnika SFTP v sistemih Windows 10 in Windows Server 2016/2012 R2 z uporabo paketa Win32-OpenSSH.

Namestitev programa Win32 OpenSSH v sistem Windows 10 1803 + / Windows Server 2019

V operacijskem sistemu Windows 10, začenši z gradnjo 1803, in v Windows Server 2019 je paket OpenSSH (kot RSAT) že vključen v operacijski sistem v obliki Feature on Demand (FoD).

V sistemih Windows 10 in Windows Server 2019 lahko namestite strežnik OpenSSH s pomočjo ukaznega okna PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server *

Ali pa uporabite DISM:
dism / Online / Zmogljivost dodajanja /CapabilityName:OpenSSH.Server~~.0.0.0.0

Lahko pa namestite OpenSSH iz GUI sistema Windows 10 (Nastavitve -> Aplikacije -> Izbirne funkcije -> Dodajte funkcijo -> Odprite ssh strežnik -> Namestite).

Izvršljive datoteke OpenSSH se nahajajo v imeniku:

c: \ windows \ system32 \ OpenSSH \

Konfiguracijska datoteka sshd_config se nahaja v imeniku C: \ ProgramData \ ssh (imenik je ustvarjen po prvem zagonu storitve).

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

Datoteka in ključi pooblaščenih ključev so shranjeni v% USERPROFILE% \. Ssh \.

Preberite več o uporabi OpenSSH za povezavo z Windows 10 / Windows Server 2019 preko varnega tunela SSH..

Namestitev programa Win32 OpenSSH na Windows Server 2016/2012 R2

V prejšnjih različicah sistema Windows 10 in v sistemu Windows Server 2016/2012 R2 morate prenesti in namestiti OpenSSH iz GitHub-a (https://github.com/PowerShell/Win32-OpenSSH/releases). Za 64-bitno različico sistema Windows potrebujemo različico: Odpre se-Zmagajte64.zip (3,5 Mb).

  1. Odstranite vsebino arhiva v ciljni imenik, na primer: C: \ OpenSSH-Win
  2. Zaženemo ukazno vrstico PowerShell s skrbniškimi pravicami in pojdemo v imenik OpenSSH:Cd C: \ OpenSSH-Win
  3. Pot v imenik OpenSSH dodajte spremenljivki okolja Path;
  4. Namestite strežnik OpenSSH: .\ install-sshd.ps1 (prikaže se zeleno sporočilo "storitve sshd in ssh-agent uspešno nameščene");
  5. Ustvari SSH ključe za strežnik (potrebne za zagon storitve sshd):ssh-keygen.exe -A 
    ssh-keygen: generiranje novih gostiteljskih ključev: RSA DSA ECDSA ED25519

    Ko pride do napake

     ssh-keygen: ustvarjanje novih gostiteljskih ključev: RSA vašega javnega ključa ni mogoče shraniti v __PROGRAMDATA __ \\ ssh / ssh_host_rsa_key.bxKmOcF49P: Ni take datoteke ali imenika

    , preverite, ali je ustvarjen imenik% programdata% \ ssh.

  6. Omogočite zagon za storitev SSHD in ga zaženite z naslednjimi ukazi za upravljanje storitev PowerShell:Set-Service -Name sshd -StartupType 'Samodejno'
    Start-Service sshd
  7. S programom PowerShell odprite vrata TCP 22 v požarnem zidu Windows za dohodni promet na strežnik SSH:New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
  8. Odprite konfiguracijsko datoteko "C: \ ProgramData \ SSH \ sshd_config" v katerem koli urejevalniku besedil, poiščite in preverite vrednost direktive Podsistem sftp. Tu je treba navesti datoteko. sftp-server.exe. Upoštevajte uporabne smernice v konfiguracijski datoteki sshd_config:
    AllowGroups corp \ admingroup # dovoli dostop do OpenSSH samo za uporabnike iz te skupine AuthenticationMethods geslo # omogoči preverjanje pristnosti gesla (SSH ključev ni mogoče uporabiti) ForceCommand Internal-sftp # ChrootDirectory C: \ inetpub \ wwwroot \ ftpfolder # privzeti imenik za uporabnike SFTP 

Testiranje SFTP povezave z uporabo WinSCP

Poskusimo se povezati s strežnikom SSH, ki smo ga dvignili s protokolom SFTP. V te namene bomo uporabili brezplačno stranko Winscp.

V oknu z nastavitvami povezave izberite protokol za prenos datotek SFTP, določite ime strežnika in podatke računa Windows, s katerim je vzpostavljena povezava (možno je tudi konfigurirati pooblastilo ključa).Ko se prvič povežete, se prikaže okno, ki opozarja, da gostiteljski ključ ni v lokalnem predpomnilniku.

Če je vse pravilno nastavljeno, se mora odjemalec povezati s strežnikom SFTP in prikazati seznam datotek v uporabnikovem domačem imeniku (privzeto imenik z uporabniškim profilom).

Z znanim vmesnikom upravitelja datotek lahko varno kopirate datoteke med strežnik in odjemalca. Datoteke se bodo prenesle po varnem protokolu SFTP.

Odstranjevanje storitve Win32 OpenSSH

Če želite pravilno odstraniti storitev Win32 OpenSSH iz sistema:

  1. Odprite skrbniško konzolo Powershell
  2. Ustavite storitev SSHD:Stop-Service sshd
  3. Odstranite storitev OpenSSD: Odstranite tipke:.\ uninstall-sshlsa.ps1
    sshd uspešno odstranjen ssh-agent uspešno odstranjen