OpenSSH Server-konfiguráció Windows Serverhez és Windowshoz

Ez a cikk az OpenSSH Server (sshd) Windows-specifikus konfigurációját ismerteti.

Az OpenSSH részletes dokumentációt tart fenn a konfigurációs beállításokról online a OpenSSH.com weboldalon. Ez a dokumentáció nem duplikálva van ebben a dokumentációkészletben.

OpenSSH konfigurációs fájlok

Az OpenSSH konfigurációs fájlokkal rendelkezik a kiszolgáló és az ügyfél beállításaihoz is. Az OpenSSH nyílt forráskódú, és Windows Server és Windows rendszerű ügyfél operációs rendszerekhez lett hozzáadva a Windows Server 2019-től és a Windows 10-től kezdve (1809-ben készült). Az OpenSSH-konfigurációs fájlok nyílt forráskódú dokumentációja itt nem ismétlődik meg. Az ügyfélkonfigurációs fájlok a ssh_config manuális lapon találhatók. Az OpenSSH-kiszolgáló konfigurációs fájljai a sshd_config manuális lapon találhatók.

Az OpenSSH-kiszolgáló alapértelmezés szerint beolvassa a konfigurációs adatokat %programdata%\ssh\sshd_config . A paraméterrel sshd.exe futtatva -f megadhat egy másik konfigurációs fájlt. Ha a fájl hiányzik, az sshd létrehoz egyet az alapértelmezett konfigurációval a szolgáltatás indításakor.

Windows rendszerben az OpenSSH-ügyfél (ssh) a konfigurációs fájlból a következő sorrendben olvassa be a konfigurációs adatokat:

  1. A ssh.exe a -F paraméterrel lett elindítva, megadva egy konfigurációs fájl útvonalát és a fájlból egy bejegyzés nevét.
  2. A felhasználó konfigurációs fájlján keresztül: %userprofile%\.ssh\config.
  3. A rendszerszintű konfigurációs fájlon keresztül a következő helyen %programdata%\ssh\ssh_config: .

A Windows rendszerben az OpenSSH alapértelmezett shelljének konfigurálása

Az alapértelmezett parancshéj biztosítja a felhasználó által a kiszolgálóhoz SSH-val való csatlakozáskor tapasztalt élményt. A Windows kezdeti alapértelmezett beállítása a Windows parancssora (cmd.exe). A Windows a PowerShellt is tartalmazza, és a Nem Microsoft parancshéjak is elérhetők a Windowshoz, és a kiszolgáló alapértelmezett rendszerhéjaként konfigurálhatók.

Az alapértelmezett parancshéj beállításához először győződjön meg arról, hogy az OpenSSH telepítési mappája a rendszer elérési útján található. Windows esetén az alapértelmezett telepítési mappa a %systemdrive%\Windows\System32\opensshkövetkező: . Az alábbi parancs az aktuális elérési út beállítását mutatja be, és hozzáadja az alapértelmezett OpenSSH telepítési mappát.

Parancssor Használandó parancs
Command path
PowerShell $env:path

Az alapértelmezett ssh-rendszerhéj konfigurálható a Windows beállításjegyzékben úgy, hogy hozzáadja a teljes elérési utat a futtatható rendszerhéjhoz HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH a sztringértékben DefaultShell.

Az alábbi emelt szintű PowerShell-parancs az openSSH-kiszolgáló alapértelmezett rendszerhéját powershell.exe állítja be. (Az elérési út beállítása nem vonatkozik az OpenSSH-ügyfélre.)

$NewItemPropertyParams = @{
    Path         = "HKLM:\SOFTWARE\OpenSSH"
    Name         = "DefaultShell"
    Value        = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
    PropertyType = "String"
    Force        = $true
}
New-ItemProperty @NewItemPropertyParams

Windows-konfigurációk sshd_config fájlban

Windows rendszerben az sshd alapértelmezés szerint beolvassa a konfigurációs adatokat %programdata%\ssh\sshd_config . A paraméterrel sshd.exe futtatva -f megadhat egy másik konfigurációs fájlt. Ha a fájl hiányzik, az sshd létrehoz egyet az alapértelmezett konfigurációval a szolgáltatás indításakor.

Az alábbi szakaszok a Windows-specifikus konfigurációs beállításokat ismertetik, amelyek a sshd_config bejegyzéseiből érhetők el. Más konfigurációs beállítások is lehetségesek, amelyek itt nem szerepelnek. Ezek részletes ismertetését a Win32 OpenSSH dokumentációja ismerteti.

Tip

Az OpenSSH-kiszolgáló (sshd) beolvassa a konfigurációs fájlt a szolgáltatás indításakor. A konfigurációs fájl módosításaihoz újra kell indítani a szolgáltatást.

EngedélyezettCsoportok, EngedélyezettFelhasználók, TiltottCsoportok, TiltottFelhasználók

A , AllowGroupsAllowUsersés irányelvek használatával szabályozhatja, hogy mely felhasználók és DenyGroups csoportok csatlakozhatnak a DenyUserskiszolgálóhoz. Az engedélyezési és elutasítási irányelvek feldolgozása a következő sorrendben történik: DenyUsers, AllowUsers, DenyGroupsés végül AllowGroups.

Minden fióknevet kisbetűvel kell megadni.

A ssh_config mintáiról és helyettesítő karaktereiről az sshd_config OpenBSD manuális oldalán talál további információt.

Ha felhasználó-/csoportalapú szabályokat konfigurál tartományi felhasználóval vagy csoporttal, használja a következő formátumot: user?domain*.

A Windows több formátumot is lehetővé tesz a tartománynevek megadásához, de ütközhet a szabványos Linux-mintákkal. Ezért * a teljes tartománynevek (FQDN-k) lefedésére szolgál. Ez a módszer a formátummal való ütközések elkerülésére is használja ?ahelyett @, hogy a username@host formátummal ütközik.

A munkacsoport felhasználói, csoportjai és internetkapcsolattal rendelkező fiókjai mindig a helyi fiókjuk nevére lesznek feloldva (nincs tartományrész, hasonló a szokásos Unix-nevekhez). A tartományi felhasználók és csoportok szigorúan a NameSamCompatible formátumra domain_short_name\user_namevannak feloldva.

Ehhez a formátumhoz minden felhasználó- és csoportalapú konfigurációs szabálynak meg kell felelnie.

Az alábbi példa tagadja contoso\admin a gazdagép 192.168.2.23-at, és letiltja az összes felhasználót a Contoso tartományból. Emellett lehetővé teszi a tagok és contoso\sshusers csoportok contoso\serveroperators tagjait is.

DenyUsers contoso\admin@192.168.2.23
DenyUsers contoso\*
AllowGroups contoso\sshusers contoso\serveroperators

Az alábbi példa lehetővé teszi a felhasználónak localuser , hogy jelentkezzen be a gazdagépről 192.168.2.23, és engedélyezi a csoport sshuserstagjainak.

AllowUsers localuser@192.168.2.23
AllowGroups sshusers

AuthenticationMethods

Windows OpenSSH esetén az egyetlen elérhető hitelesítési módszer password és publickey.

Important

A Microsoft Entra-fiókon keresztüli hitelesítés jelenleg nem támogatott.

AuthorizedKeysFile

Az alapértelmezett érték a .ssh/authorized_keys. Ha nem ad meg abszolút elérési utat, az OpenSSH megkeresi a fájlt a kezdőkönyvtárhoz képest, például C:\Users\username. Ha a felhasználó a rendszergazdai csoporthoz tartozik, %programdata%/ssh/administrators_authorized_keys akkor azt használja a rendszer.

Tip

A administrators_authorized_keys fájlnak csak a fiókhoz és NT Authority\SYSTEM a BUILTIN\Administrators biztonsági csoporthoz tartozó engedélybejegyzésekkel kell rendelkeznie. Az NT Authority\SYSTEM-fióknak teljes hozzáféréssel kell rendelkeznie. A BUILTIN\Administrators biztonsági csoportra azért van szükség, hogy a rendszergazdák felügyelhessék az engedélyezett kulcsokat. Kiválaszthatja a szükséges hozzáférést. Engedélyek megadásához megnyithat egy emelt szintű PowerShell-parancssort, és futtathatja a parancsot icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F".

ChrootDirectory (a 7.7.0.0-s verzióban hozzáadott támogatás)

Ez az irányelv csak SFTP-munkamenetekben támogatott. A távoli munkamenet cmd.exe nem veszi figyelembe ChrootDirectory. Az sftp-only chroot-kiszolgáló beállításához állítsa be a ForceCommand-t belső sftp-re. Az SCP-t chroottal is beállíthatja egy egyéni rendszerhéj implementálásával, amely csak az SCP-t és az SFTP-t teszi lehetővé.

GSSAPIAuthentication

A GSSAPIAuthentication konfigurációs argumentum azt határozza meg, hogy engedélyezve van-e a GSSAPI (Kerberos) alapú felhasználói hitelesítés. Az alapértelmezett érték a GSSAPIAuthentication nem.

A GSSAPI-hitelesítéshez az OpenSSH-ügyfél használatakor a -K gazdagépnevet meghatározó kapcsolót is használni kell. Másik lehetőségként létrehozhat egy megfelelő bejegyzést az SSH-ügyfélkonfigurációban. Windows rendszerben az OpenSSH-ügyfél alapértelmezés szerint beolvassa a konfigurációs adatokat %userprofile%\.ssh\config .

Íme egy példa GSSAPI OpenSSH-ügyfélkonfigurációra:

# 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

Important

A GSSAPI csak Windows Server 2022, Windows 11 és Windows 10 rendszeren (2021. májusi frissítés) érhető el.

HostKey

Az alapértelmezett értékek a következők:

#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

Ha az alapértelmezett értékek nem jelennek meg, az sshd automatikusan létrehozza őket egy szolgáltatás indításakor.

Match

Megfelel a feltételeknek egy vagy több kritérium alapján. Egyezés esetén a rendszer a következő konfigurációs argumentumokat alkalmazza. Az Illesztés az AllowGroups, AllowUsers, DenyGroups, DenyUsers szakaszban szereplő mintázati szabályokat használja. A felhasználó- és csoportneveknek kisbetűsnek kell lenniük.

PermitRootLogin

Windows rendszeren nem alkalmazható. Ha meg szeretné akadályozni, hogy a rendszergazdák bejelentkezhessenek, használja a Rendszergazdák parancsot az DenyGroups irányelvvel.

SyslogFacility

Ha fájlalapú naplózásra van szüksége, használja LOCAL0a . A naplók a következő alatt %programdata%\ssh\logsjönnek létre: . Bármely más érték esetén, beleértve az alapértelmezett értéket is, az AUTH a naplózást az ETW-be irányítja. További információ: Naplózási lehetőségek a Windowsban.

Konfigurációs argumentumok

A következő konfigurációs argumentum a Windows Server 2022, a Windows 11 és a Windows 10 rendszerben (2021. májusi frissítés) érhető el:

  • GSSAPIAuthentication

A következő konfigurációs argumentumok nem érhetők el a Windows Serveren és Windowson futó OpenSSH-verzióban:

  • AcceptEnv
  • AllowStreamLocalForwarding
  • AuthorizedKeysCommand
  • AuthorizedKeysCommandUser
  • AuthorizedPrincipalsCommand
  • AuthorizedPrincipalsCommandUser
  • ExposeAuthInfo
  • GSSAPICleanupCredentials
  • GSSAPIStrictAcceptorCheck
  • HostbasedAcceptedKeyTypes
  • HostbasedAuthentication
  • HostbasedUsesNameFromPacketOnly
  • IgnoreRhosts
  • IgnoreUserKnownHosts
  • KbdInteractiveAuthentication
  • KerberosAuthentication
  • KerberosGetAFSToken
  • KerberosOrLocalPasswd
  • KerberosTicketCleanup
  • PermitTunnel
  • PermitUserEnvironment
  • PermitUserRC
  • PidFile
  • PrintLastLog
  • PrintMotd
  • RDomain
  • StreamLocalBindMask
  • StreamLocalBindUnlink
  • StrictModes
  • X11DisplayOffset
  • X11Forwarding
  • X11UseLocalhost
  • XAuthLocation