Instalowanie, testowanie i odinstalowywanie serwera SFTP opartego na OpenSSH w systemie Windows | INTROSERV
EUR
european

EUR

usa

USD

Poland Pl
Ex. VAT Ex. VAT 0%

Instalowanie, testowanie i odinstalowywanie serwera SFTP opartego na OpenSSH w systemie Windows

Ten przewodnik dotyczy systemów Windows Server 2019, 2022 i 2025, które zawierają OpenSSH Server jako wbudowaną funkcję opcjonalną. Nie jest wymagane pobieranie oprogramowania innych firm.

Przewodnik krok po kroku

Instalacja funkcji OpenSSH Server

1) Uruchom PowerShell jako administrator: Start, wpisz "PowerShell" → kliknij prawym przyciskiem myszy na "PowerShell" → Uruchom jako administrator.

2) Sprawdź, czy funkcja OpenSSH Server jest już zainstalowana:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*' | Select-Object Name, State

Sprawdzanie, czy funkcja OpenSSH Server jest zainstalowana
Uwaga: Lista zawiera zarówno OpenSSH.Client, jak i OpenSSH.Server. Upewnij się, że sprawdzasz stan konkretnie składnika OpenSSH.Server, składnik kliencki może być już zainstalowany i nie jest tym, czego dotyczy ten przewodnik.

Jeśli OpenSSH.Server pokazuje stan State : NotPresent, zainstaluj go:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Instalacja funkcji OpenSSH Server w programie PowerShell
Uwaga: System Windows instaluje wbudowaną funkcję OpenSSH Server w lokalizacji C:\Windows\System32\OpenSSH\. Nie instaluj OpenSSH ręcznie bezpośrednio w C:\Windows, narusza to konwencje katalogów systemu Windows i może powodować problemy z uprawnieniami.

3) Uruchom usługę sshd i ustaw ją tak, aby uruchamiała się automatycznie:

Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic'

4) Sprawdź, czy usługa jest uruchomiona:

Get-Service sshd

Stan usługi sshd OpenSSH pokazujący Running

Pole Status powinno pokazywać Running. Aby dodatkowo potwierdzić, że typ uruchamiania jest ustawiony na Automatic:

Get-CimInstance Win32_Service -Filter "Name='sshd'" | Select-Object StartMode

StartMode usługi sshd pokazujący Auto

5) Sprawdź lokalizację zainstalowanego pliku binarnego OpenSSH oraz informacje o wersji:

Get-Command sshd | Select-Object Source (Get-Command sshd).FileVersionInfo

Ścieżka i informacje o wersji pliku binarnego sshd

Pole Source potwierdza, że ścieżka instalacji odpowiada C:\Windows\System32\OpenSSH\sshd.exe; FileVersionInfo pokazuje wersję OpenSSH (na przykład OpenSSH_8.1p1, FileVersion 8.1.0.1 w systemie Windows Server 2022).

Otwieranie portu zapory

Domyślnie instalacja funkcji OpenSSH Server zwykle automatycznie tworzy regułę zapory dla ruchu przychodzącego o nazwie OpenSSH-Server-In-TCP. Potwierdź, że istnieje i jest włączona:

Get-NetFirewallRule -Name *OpenSSH-Server*

Włączona reguła zapory dla ruchu przychodzącego OpenSSH

Jeśli reguła nie istnieje, utwórz ją ręcznie (zwróć uwagę na inną nazwę reguły, ta utworzona ręcznie reguła jest niezależna od automatycznie wygenerowanej reguły OpenSSH-Server-In-TCP):

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

Sprawdź, czy port jest rzeczywiście otwarty i nasłuchuje:

Test-NetConnection -ComputerName localhost -Port 22

Pomyślne wykonanie Test-NetConnection na porcie 22

Wynik TcpTestSucceeded : True potwierdza, że usługa nasłuchuje lokalnie. Nie potwierdza to, że zapora przepuszcza ruch z zewnątrz, aby w pełni to zweryfikować, wykonaj to samo polecenie z innego komputera w sieci, zastępując localhost adresem IP serwera.

Konfiguracja sshd_config dla SFTP

Plik konfiguracyjny znajduje się w lokalizacji:

C:\ProgramData\ssh\sshd_config

Otwórz go w edytorze tekstu z uprawnieniami administratora (na przykład Notepad uruchomiony jako administrator) i potwierdź, że obecne są następujące ustawienia (lub skonfiguruj je według potrzeb):

Port 22 PasswordAuthentication yes Subsystem sftp sftp-server.exe

Wiersz Subsystem sftp w pliku sshd_config
Uwaga dotycząca bezpieczeństwa: PasswordAuthentication yes jest tu pokazane, aby ten przewodnik był prosty, ale w przypadku serwera produkcyjnego wystawionego do Internetu bezpieczniejszym wyborem jest uwierzytelnianie oparte na kluczach z PasswordAuthentication no. Jeśli planujesz korzystać z uwierzytelniania opartego na kluczach, zapoznaj się z opcjonalnym ustawieniem AuthorizedKeysFile poniżej.
Ważne: Wiersz Subsystem sftp określa, który plik binarny obsługuje sesje SFTP. Bez tego wiersza obecnego i niezakomentowanego połączenia SSH będą działać, ale transfer plików SFTP zakończy się niepowodzeniem.

Domyślnie ten wiersz jest już obecny i niezakomentowany w pliku konfiguracyjnym wbudowanej funkcji. Jeśli go brakuje lub jest zakomentowany znakiem #, dodaj go lub usuń znak komentarza, a następnie zapisz plik.

Uwaga: Nowsze wersje OpenSSH obsługują również Subsystem sftp internal-sftp, wbudowaną procedurę obsługi, która nie wywołuje zewnętrznego pliku binarnego:

Subsystem sftp internal-sftp

Działa zarówno sftp-server.exe, jak i internal-sftp; ten przewodnik używa sftp-server.exe, ponieważ jest to wartość dostarczana domyślnie.

Ustawienia opcjonalne, które również warto uwzględnić w sshd_config:

# Wartosc domyslna, juz ustawiona; pokazana tutaj jako odniesienie, jesli uwierzytelnianie oparte na kluczach nie dziala # AuthorizedKeysFile .ssh/authorized_keys # Ograniczenie dostepu do okreslonych uzytkownikow (opcjonalnie) # AllowUsers username1 username2 # Rejestrowanie SyslogFacility LOCAL0 LogLevel INFO

Uwaga: W przypadku kont będących członkami lokalnej grupy Administratorzy port OpenSSH dla systemu Windows używa innego pliku: C:\ProgramData\ssh\administrators_authorized_keys, a nie .ssh\authorized_keys w profilu użytkownika. Jeśli uwierzytelnianie oparte na kluczach dla konta administratora nie działa zgodnie z oczekiwaniami, sprawdź zamiast tego ten plik.

Po każdej zmianie w pliku sshd_config uruchom ponownie usługę, aby ją zastosować:

Restart-Service sshd

Sprawdzanie połączenia SFTP za pomocą WinSCP

Zainstaluj i uruchom darmowego klienta WinSCP. W oknie ustawień połączenia wybierz protokół transferu plików SFTP, wprowadź nazwę hosta lub adres IP serwera w polu Host name, pozostaw pole Port number na wartości 22 (chyba że skonfigurowano inny port) i wprowadź poświadczenia konta Windows, za pomocą którego się łączysz.

Okno logowania WinSCP z wybranym protokołem SFTP

Jeśli wszystko jest poprawnie skonfigurowane, klient łączy się z serwerem SFTP i wyświetla zawartość katalogu domowego użytkownika (domyślnego katalogu profilu). Domyślnie użytkownik trafia do C:\Users\<username>. Pliki można następnie bezpiecznie przesyłać między serwerem a klientem za pośrednictwem protokołu SFTP.

WinSCP połączony z serwerem SFTP, wyświetlający katalog domowy

Odinstalowywanie funkcji OpenSSH Server

1) Uruchom PowerShell jako administrator.

2) Zatrzymaj usługę sshd przed usunięciem funkcji, usunięcie jej, gdy usługa jest nadal uruchomiona lub aktywnie używana, może się nie powieść lub zawiesić:

Stop-Service sshd

3) Usuń funkcję:

Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

4) (Opcjonalnie) Usuń regułę zapory. Obejmuje to zarówno regułę utworzoną automatycznie, jak i utworzoną ręcznie, na wypadek gdyby którakolwiek z nich istniała:

Remove-NetFirewallRule -Name OpenSSH-Server-In-TCP -ErrorAction SilentlyContinue Remove-NetFirewallRule -DisplayName 'OpenSSH Server (sshd)' -ErrorAction SilentlyContinue

5) (Opcjonalnie) Usuwanie konfiguracji: możesz usunąć tylko plik konfiguracyjny albo wykonać pełne czyszczenie wraz z kluczami hosta.

Aby usunąć tylko sshd_config bez naruszania kluczy hosta:

Remove-Item -Path 'C:\ProgramData\ssh\sshd_config' -Force

Aby wykonać pełne czyszczenie wraz z kluczami hosta, usuń zamiast tego cały folder konfiguracji:

Remove-Item -Path 'C:\ProgramData\ssh' -Recurse -Force

Ostrzeżenie: Usunięcie całego folderu trwale usuwa również klucze hosta serwera. Klienci łączący się po ponownej instalacji będą traktować serwer jako nowy, nierozpoznany host SSH. Zrób to tylko wtedy, gdy nie planujesz ponownej instalacji OpenSSH Server z tą samą konfiguracją w przyszłości.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA