Instalace a konfigurace SFTP serveru (SSH FTP) ve Windows na základě OpenSSH

Pomocí oficiálního balíčku OpenSSH pro Windows můžete snadno uspořádat zabezpečenou výměnu souborů mezi klientem a servery Windows pomocí protokolu zabezpečeného přenosu souborů. SFTP (Bezpečně FTP). V tomto článku si ukážeme, jak pomocí Win32-OpenSSH nainstalovat SFTP server na Windows 10 nebo Windows Server 2016 / 2012R2..

Obsah:

  • Funkce SFTP
  • Implementace SFTP v systémech Windows
  • Instalace Win32 OpenSSH na Windows 10 1803 + / Windows Server 2019
  • Instalace Win32 OpenSSH na Windows Server 2016/2012 R2
  • Testování připojení SFTP pomocí WinSCP
  • Odebrání služby Win32 OpenSSH

Funkce SFTP

Protokol SFTP (Protokol zabezpečeného přenosu souborů , Zabezpečené FTP nebo FTP SSH) je rozšíření protokolu SSH, což je standard ve světě systémů UNIX / Linux. Přestože je to z pohledu uživatelů podobné FTP, ve skutečnosti je to úplně jiný protokol, který s FTP nemá nic společného. Data mezi klientem a serverem jsou přenášena na portu 22 tunelem SSH.

Klíčové výhody SFTP:

  • Soubory a příkazy jsou přenášeny uvnitř zabezpečené relace SSH;
  • K přenosu souborů a příkazů se používá jediné připojení;
  • Podpora symbolických odkazů, přerušení, obnovení, přenosu, mazání souborů atd.;
  • U kanálů, kde je FTP pomalý nebo přerušovaný, je připojení SFTP zpravidla spolehlivější a rychlejší;
  • Ověřování pomocí SSH klíčů.
Není třeba zaměňovat SFTP a FTPS. FTPS je v podstatě běžný FTP s SSL certifikátem, zatímco SFTP je přenos FTP dat a příkazů uvnitř SSH.

Implementace SFTP v systémech Windows

Historicky chyběly operační systémy Windows vestavěné nástroje pro organizaci zabezpečeného serveru SFTP. Pro tyto účely byla obvykle používána otevřená nebo komerční řešení, například Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch atd. Před několika lety však společnost Microsoft vydala svou verzi portu OpenSSH pro win32. Tento projekt se nazývá Vyhrajte32-openssh.

Zvažte proces nastavení serveru SFTP v systému Windows 10 a Windows Server 2016/2012 R2 pomocí balíčku Win32-OpenSSH..

Instalace Win32 OpenSSH na Windows 10 1803 + / Windows Server 2019

V systému Windows 10, počínaje sestavením 1803, a v systému Windows Server 2019 je balíček OpenSSH (jako RSAT) již součástí operačního systému jako Feature on Demand (FoD)..

V systému Windows 10 a Windows Server 2019 můžete nainstalovat server OpenSSH pomocí rutiny PowerShell:

Přizpůsobitelnost systému Windows -Online -Name OpenSSH.Server *

Nebo pomocí DISM:
dism / Online / Add-Capability /CapabilityName:OpenSSH.Server~~.0.0.0.0

Nebo můžete nainstalovat OpenSSH z GUI Windows 10 (Nastavení -> Aplikace -> Volitelné funkce -> Přidejte funkci -> Otevřete ssh server -> Nainstalovat).

Spustitelné soubory OpenSSH jsou umístěny v adresáři:

c: \ windows \ system32 \ OpenSSH \

Konfigurační soubor sshd_config je umístěn v adresáři C: \ ProgramData \ ssh (adresář je vytvořen po prvním spuštění služby).

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

Soubor oprávněných klíčů a klíče jsou uloženy v% USERPROFILE% \. Ssh \.

Další informace o používání OpenSSH pro připojení k Windows 10 / Windows Server 2019 prostřednictvím zabezpečeného tunelu SSH..

Instalace Win32 OpenSSH na Windows Server 2016/2012 R2

V předchozích verzích systému Windows 10 a Windows Server 2016/2012 R2 musíte stáhnout a nainstalovat OpenSSH z GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases). Potřebujeme verzi pro 64bitovou verzi systému Windows: Openssh-Vyhrajte64.zip (3,5 Mb).

  1. Rozbalte obsah archivu do cílového adresáře, například: C: \ OpenSSH-Win
  2. Spusťte příkazový řádek PowerShell s právy správce a přejděte do adresáře OpenSSH:Cd C: \ OpenSSH-Win
  3. Přidejte cestu k adresáři OpenSSH do proměnné prostředí Path;
  4. Nainstalujte server OpenSSH: .\ install-sshd.ps1 (měla by se zobrazit zelená zpráva „úspěšně nainstalované služby sshd a ssh-agent“);
  5. Generujte klíče SSH pro server (potřebné ke spuštění služby sshd):ssh-keygen.exe -A 
    ssh-keygen: generování nových hostitelských klíčů: RSA DSA ECDSA ED25519

    Když dojde k chybě

     ssh-keygen: generování nových hostitelských klíčů: RSA Váš veřejný klíč nelze uložit do __PROGRAMDATA __ \\ ssh / ssh_host_rsa_key.bxKmOcF49P: Žádný takový soubor nebo adresář neexistuje

    , ujistěte se, že je vytvořen adresář% programdata% \ ssh.

  6. Povolte automatické spuštění služby SSHD a spusťte ji pomocí následujících příkazů správy služeb PowerShell:Set-Service - Jméno sshd - StartartType 'Automatic'
    Start-Service sshd
  7. Pomocí PowerShell otevřete port TCP 22 v bráně Windows Firewall pro příchozí přenos na server SSH:New-NetFirewallRule -Protocol TCP -LocalPort 22 - Směrování příchozí - Povolení aukce -DisplayName SSH
  8. Otevřete konfigurační soubor "C: \ ProgramData \ SSH \ sshd_config" v libovolném textovém editoru, najděte a zkontrolujte hodnotu direktivy Subsystém sftp. Zde by měl být soubor zadán. sftp-server.exe. Zvažte užitečné směrnice v konfiguračním souboru sshd_config:
    AllowGroups corp \ admingroup # povolit přístup k OpenSSH pouze pro uživatele z této skupiny AuthenticationMethods password # enable ověření hesla (SSH klíče nelze použít) ForceCommand Internal-sftp # ChrootDirectory C: \ inetpub \ wwwroot \ ftpfolder # výchozí adresář pro uživatele SFTP 

Testování připojení SFTP pomocí WinSCP

Zkusme se připojit k SSH serveru, který jsme vytvořili pomocí protokolu SFTP. Pro tyto účely použijeme bezplatného klienta Winscp.

V okně nastavení připojení vyberte protokol přenosu souborů SFTP, zadejte název serveru a data účtu Windows, pod kterým je připojení navázáno (je také možné nakonfigurovat autorizaci klíče).Při prvním připojení se zobrazí okno s upozorněním, že hostitelský klíč není v místní mezipaměti.

Pokud je vše nakonfigurováno správně, musí se klient připojit k SFTP serveru a zobrazit seznam souborů v domovském adresáři uživatele (ve výchozím nastavení adresář s profilem uživatele).

Pomocí známého rozhraní správce souborů můžete bezpečně kopírovat soubory mezi serverem a klientem. Soubory budou přenášeny pomocí zabezpečeného protokolu SFTP.

Odebrání služby Win32 OpenSSH

Správné odebrání služby Win32 OpenSSH ze systému:

  1. Otevřete administrátorskou konzoli Powershell
  2. Zastavte službu SSHD:Stop-Service sshd
  3. Odebrání služby OpenSSD: Odebrání klíčů:.\ uninstall-sshlsa.ps1
    sshd úspěšně odinstalován ssh-agent úspěšně odinstalován