Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano konfigurację specyficzną dla systemu Windows dla serwera OpenSSH (sshd).
Protokół OpenSSH przechowuje szczegółową dokumentację opcji konfiguracji online w OpenSSH.com, która nie jest duplikowana w tym zestawie dokumentacji.
Pliki konfiguracji OpenSSH
Protokół OpenSSH zawiera pliki konfiguracji zarówno dla ustawień serwera, jak i klienta. Protokół OpenSSH jest typu open source i został dodany do systemów operacyjnych Windows Server i Windows Client, począwszy od systemów Windows Server 2019 i Windows 10 (kompilacja 1809). W związku z tym dokumentacja typu open source dla plików konfiguracji OpenSSH nie jest powtarzana w tym miejscu. Pliki konfiguracji klienta można znaleźć na stronie ręcznej ssh_config i pliki konfiguracji serwera OpenSSH można znaleźć na stronie ręcznej sshd_config.
Serwer SSH (sshd) domyślnie odczytuje dane konfiguracji z %programdata%\ssh\sshd_config, a inny plik konfiguracji może zostać określony przez uruchomienie sshd.exe
za pomocą parametru -f
. Jeśli plik jest nieobecny, sshd generuje jeden z domyślną konfiguracją po uruchomieniu usługi.
W systemie Windows klient OpenSSH (ssh) odczytuje dane konfiguracji z pliku konfiguracji w następującej kolejności:
- Uruchamiając
ssh.exe
z parametrem-F
, aby określić ścieżkę do pliku konfiguracyjnego oraz nazwę wpisu z tego pliku. - Plik konfiguracji użytkownika w folderze%userprofile%\.ssh\config.
- Plik konfiguracji dla całego systemu w %programdata%\ssh\ssh_config.
Konfigurowanie domyślnej powłoki dla protokołu OpenSSH w systemie Windows
Domyślna powłoka poleceń zapewnia środowisko, które użytkownik widzi podczas nawiązywania połączenia z serwerem przy użyciu protokołu SSH. Domyślną powłoką Windows początkowo jest powłoka poleceń Windows (cmd.exe). System Windows zawiera również program PowerShell i powłoki poleceń innych firm są również dostępne dla systemu Windows i mogą być skonfigurowane jako domyślna powłoka serwera.
Aby ustawić domyślną powłokę poleceń, najpierw upewnij się, że folder instalacyjny OpenSSH znajduje się w ścieżce systemowej. W systemie Windows domyślny folder instalacyjny to %systemdrive%\Windows\System32\openssh. Następujące polecenie pokazuje bieżące ustawienie ścieżki i dodaje do niego domyślny folder instalacyjny OpenSSH.
Powłoka poleceń | Polecenie do użycia |
---|---|
Komenda | path |
PowerShell | $env:path |
Skonfigurowanie domyślnej powłoki SSH odbywa się w rejestrze systemu Windows przez dodanie pełnej ścieżki do pliku wykonywalnego powłoki w wartości ciągu HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH
DefaultShell
.
Na przykład, poniższe polecenie programu PowerShell z podwyższonym poziomem uprawnień ustawia domyślną powłokę na powershell.exe
dla serwera OpenSSH (ustawienie tej opcji nie dotyczy klienta OpenSSH).
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
Konfiguracje systemu Windows w sshd_config
W systemie Windows plik sshd odczytuje dane konfiguracji z %programdata%\ssh\sshd_config domyślnie lub inny plik konfiguracji może zostać określony przez uruchomienie sshd.exe
za pomocą parametru -f
.
Jeśli plik jest nieobecny, sshd generuje jeden z domyślną konfiguracją po uruchomieniu usługi.
Poniższe elementy umożliwiają konfigurację specyficzną dla systemu Windows za pośrednictwem wpisów w sshd_config. Istnieją inne ustawienia konfiguracji, które nie są wymienione tutaj, ponieważ zostały szczegółowo omówione w dokumentacji systemu Windows 32 OpenSSH w trybie online.
Wskazówka
Serwer OpenSSH (sshd) odczytuje plik konfiguracji po uruchomieniu usługi. Wszelkie zmiany w pliku konfiguracji wymagają ponownego uruchomienia usługi.
ZezwalajNaGrupy, ZezwalajNaUżytkowników, OdrzucajGrupy, OdrzucajUżytkowników
Kontrolowanie, którzy użytkownicy i grupy mogą łączyć się z serwerem, odbywa się przy użyciu dyrektyw AllowGroups, AllowUsers, DenyGroups i DenyUsers. Dyrektywy zezwalania/odmowy są przetwarzane w następującej kolejności: DenyUsers, AllowUsers, DenyGroups i na koniec AllowGroups. Wszystkie nazwy kont muszą być określone w małych literach. Aby uzyskać więcej informacji na temat wzorców i symboli wieloznacznych w ssh_config, zobacz stronę ręczną sshd_config OpenBSD.
Podczas konfigurowania reguł opartych na użytkownikach/grupach z użytkownikiem domenowym lub grupą domenową, użyj następującego formatu: user?domain*
.
System Windows umożliwia określanie podmiotów domeny w wielu formatach, ale może kolidować ze standardowymi wzorcami systemu Linux.
Z tego powodu *
jest dodawany do obejmowania nazw domen w pełni kwalifikowanych.
Ponadto to podejście używa metody ?
, a nie @
, aby uniknąć konfliktów z formatem username@host.
Użytkownicy/grupy robocze i konta połączone z Internetem są zawsze rozpoznawane jako nazwa konta lokalnego (bez części domenowej, podobnie jak standardowe nazwy systemu Unix). Użytkownicy i grupy domeny są ściśle rozpoznawani w formacie NameSamCompatible : domain_short_name\user_name. Wszystkie reguły konfiguracji oparte na użytkownikach/grupach muszą być zgodne z tym formatem.
W poniższym przykładzie odmówiono dostępu kontu contoso\admin z hosta 192.168.2.23 i blokuje wszystkich użytkowników z domeny contoso. Umożliwia również użytkownikom, którzy są członkami grup contoso\sshusers i contoso\serveroperators.
DenyUsers contoso\admin@192.168.2.23
DenyUsers contoso\*
AllowGroups contoso\sshusers contoso\serveroperators
Poniższy przykład umożliwia użytkownikom lokalnym logowanie się z hosta 192.168.2.23 i umożliwia członkom grupy sshusers.
AllowUsers localuser@192.168.2.23
AllowGroups sshusers
Metody uwierzytelniania
W przypadku protokołu Windows OpenSSH jedynymi dostępnymi metodami uwierzytelniania są password
i publickey
.
Ważne
Uwierzytelnianie przy użyciu konta Microsoft Entra nie jest obecnie obsługiwane.
Plik z autoryzowanymi kluczami (AuthorizedKeysFile)
Wartość domyślna to .ssh/authorized_keys
. Jeśli ścieżka nie jest bezwzględna, jest podejmowana względem katalogu macierzystego użytkownika (lub ścieżki obrazu profilu), na przykład C:\Users\username. Jeśli użytkownik należy do grupy administratorów, %programdata%/ssh/administrators_authorized_keys jest używany zamiast tego.
Wskazówka
Plik administrators_authorized_keys musi zawierać tylko wpisy uprawnień dla konta NT Authority\SYSTEM i BUILTIN\Administrators grupy zabezpieczeń. Konto URZĘDU NT\SYSTEM musi mieć pełną kontrolę. Grupa zabezpieczeń BUILTIN\Administrators jest wymagana, aby administratorzy mogli zarządzać autoryzowanymi kluczami. Można wybrać wymagany dostęp. Aby udzielić uprawnień, możesz otworzyć wiersz programu PowerShell z podwyższonym poziomem uprawnień i uruchomić polecenie icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
.
ChrootDirectory (dodano obsługę w wersji 7.7.0.0)
Ta dyrektywa jest obsługiwana tylko w przypadku sesji sftp. Sesja zdalna z cmd.exe
nie będzie respektować ChrootDirectory
. Aby skonfigurować serwer chroot tylko sftp, ustaw wartość ForceCommand
na internal-sftp. Możesz również skonfigurować scp z chroot, implementując niestandardową powłokę, która zezwalałaby tylko na użycie scp i sftp.
GSSAPIAuthentication
GSSAPIAuthentication
Argument konfiguracji określa, czy uwierzytelnianie użytkownika oparte na GSSAPI jest dozwolone. Wartość domyślna dla GSSAPIAuthentication
to nie.
Uwierzytelnianie GSSAPI wymaga również użycia przełącznika określającego -K
nazwę hosta podczas korzystania z klienta OpenSSH. Alternatywnie można utworzyć odpowiedni wpis w konfiguracji klienta SSH. W systemie Windows klient OpenSSH odczytuje dane konfiguracji z %userprofile%.ssh\config domyślnie.
Możesz zobaczyć przykładową konfigurację klienta GSSAPI OpenSSH:
# Specify a set of configuration arguments for a host matching the pattern SERVER01.contoso.com
# Patterns are case sensitive
Host SERVER01.contoso.com
# Enables GSSAPI authentication
GSSAPIAuthentication yes
# Forward (delegate) credentials to the server.
GSSAPIDelegateCredentials yes
Ważne
Interfejs GSSAPI jest dostępny tylko w systemach Windows Server 2022, Windows 11 i Windows 10 xxxx.
Klucz hosta
Wartości domyślne to:
#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key
Jeśli wartości domyślne nie są obecne, sshd automatycznie generuje je na początku usługi.
Mecz
Dopasuj warunki przy użyciu co najmniej jednego kryterium. Po dopasowaniu zostaną zastosowane kolejne argumenty konfiguracji. Dopasowanie używa reguł wzorca opisanych w sekcji AllowGroups, AllowUsers, DenyGroups, DenyUsers . Nazwy użytkowników i grup powinny mieć małe litery.
ZezwalajNaLogowanieRoot
Nie dotyczy w systemie Windows. Aby uniemożliwić administratorom logowanie, należy użyć funkcji Administratorzy z dyrektywą DenyGroups .
SyslogFacility
Jeśli potrzebujesz rejestrowania opartego na plikach, użyj polecenia LOCAL0. Dzienniki są tworzone w lokalizacji %programdata%\ssh\logs. W przypadku każdej innej wartości, w tym wartości domyślnej, AUTH kieruje logowanie do ETW. Aby uzyskać więcej informacji, zobacz Funkcje rejestrowania w systemie Windows.
Argumenty konfiguracji
Następujący argument konfiguracji jest dostępny w systemach Windows Server 2022, Windows 11 i Windows 10 xxxx:
- GSSAPIAuthentication
Następujące argumenty konfiguracji nie są dostępne w wersji OpenSSH dostarczanej w systemie Windows Server i kliencie systemu Windows:
- AcceptEnv
- PozwólNaStrumieniowePrzekazywanieLokalne
- AuthorizedKeysCommand
- AuthorizedKeysCommandUser
- PoleceniePodmiotówUpoważnionych
- UżytkownikPoleceniaUprawnionychPodmiotów
- ExposeAuthInfo
- GSSAPICleanupCredentials
- GSSAPIStrictAcceptorCheck
- AkceptowaneTypyKluczyOparteNaHoście
- Uwierzytelnianie oparte na hoście
- OparteNaHościeUżywaTylkoNazwyZPakietu
- IgnoreRhosts
- IgnorujuserKnownHosts
- KbdInteractiveAuthentication
- KerberosAuthentication
- KerberosGetAFSToken dokonuje uwierzytelnienia w systemie AFS przy użyciu protokołu Kerberos
- Kerberos lub lokalne hasło
- KerberosTicketCleanup
- PermitTunnel
- ZezwólNaŚrodowiskoUżytkownika
- ZezwalanieUżytkownikowiRC
- plik PID
- DrukujOstatniLog
- PrintMotd
- Domena R
- StreamLocalBindMask
- StreamLocalBindUnlink
- Tryby restrykcyjne
- X11DisplayOffset
- X11Forwarding
- X11UseLocalhost
- LokalizacjaXAuth