Dela via


OpenSSH Server-konfiguration för Windows Server och Windows

Den här artikeln beskriver den Windows-specifika konfigurationen för OpenSSH Server (sshd).

OpenSSH har detaljerad dokumentation för konfigurationsalternativ online på OpenSSH.com. Den här dokumentationen dupliceras inte i den här dokumentationsuppsättningen.

OpenSSH-konfigurationsfiler

OpenSSH har konfigurationsfiler för både server- och klientinställningar. OpenSSH är öppen källkod och lades till i Windows Server- och Windows-klientoperativsystem från och med Windows Server 2019 och Windows 10 (version 1809). Dokumentation med öppen källkod för OpenSSH-konfigurationsfiler upprepas inte här. Klientkonfigurationsfiler finns på ssh_config manuella sidan. OpenSSH-serverkonfigurationsfiler finns på sshd_config manuella sidan.

OpenSSH Server läser konfigurationsdata från %programdata%\ssh\sshd_config som standard. Du kan ange en annan konfigurationsfil genom att köra sshd.exe med parametern -f . Om filen saknas genererar sshd en med standardkonfigurationen när tjänsten startas.

I Windows läser OpenSSH-klienten (ssh) konfigurationsdata från en konfigurationsfil i följande ordning:

  1. Via ssh.exe startade med parametern -F, med en sökväg till en konfigurationsfil och ett namn på ett inlägg från den filen angivet.
  2. Via en användares konfigurationsfil på %userprofile%\.ssh\config.
  3. Via den systemomfattande konfigurationsfilen på %programdata%\ssh\ssh_config.

Konfigurera standardgränssnittet för OpenSSH i Windows

Standardkommandogränssnittet ger den upplevelse som en användare ser när de ansluter till servern med hjälp av SSH. Den första standardinställningen i Windows är Windows-kommandotolken (cmd.exe). Windows innehåller även PowerShell och andra kommandogränssnitt än Microsoft är också tillgängliga för Windows och kan konfigureras som standardgränssnitt för en server.

Om du vill ange standardkommandogränssnittet kontrollerar du först att installationsmappen OpenSSH finns på systemsökvägen. För Windows är %systemdrive%\Windows\System32\opensshstandardinstallationsmappen . Följande kommando visar den aktuella sökvägsinställningen och lägger till standardmappen för OpenSSH-installation i den.

Kommandogränssnitt Kommando som ska användas
Command path
PowerShell $env:path

Du kan konfigurera standard-ssh-gränssnittet i Windows-registret genom att lägga till den fullständiga sökvägen till det körbara HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH gränssnittet i strängvärdet DefaultShell.

I följande exempel förhöjda PowerShell-kommando anges standardgränssnittet som powershell.exe för OpenSSH Server. (Inställningen av den här sökvägen gäller inte för OpenSSH-klienten.)

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

Windows-konfigurationer i sshd_config

I Windows läser sshd konfigurationsdata från %programdata%\ssh\sshd_config som standard. Du kan ange en annan konfigurationsfil genom att köra sshd.exe med parametern -f . Om filen saknas genererar sshd en med standardkonfigurationen när tjänsten startas.

I följande avsnitt beskrivs Windows-specifika konfigurationsinställningar som är möjliga via poster i sshd_config. Det finns andra möjliga konfigurationsinställningar som inte visas här. De beskrivs i detalj i Win32 OpenSSH-dokumentationen.

Tip

OpenSSH Server (sshd) läser konfigurationsfilen när tjänsten startar. Alla ändringar i konfigurationsfilen kräver att tjänsten startas om.

TillåtGrupper, TillåtAnvändare, NekaGrupper, NekaAnvändare

Du kan styra vilka användare och grupper som kan ansluta till servern med hjälp av direktiven AllowGroups, AllowUsers, DenyGroupsoch DenyUsers . Direktiven om att tillåta och neka bearbetas i följande ordning: DenyUsers, AllowUsers, DenyGroupsoch slutligen AllowGroups.

Alla kontonamn måste anges i gemener.

Mer information om mönster och jokertecken i ssh_config finns på den manuella sidan sshd_config OpenBSD.

När du konfigurerar användar-/gruppbaserade regler med en domänanvändare eller grupp använder du följande format: user?domain*.

Windows tillåter flera format för att ange domänobjekt, men kan vara i konflikt med linux-standardmönster. Därför * används för att täcka fullständigt kvalificerade domännamn (FQDN). Den här metoden använder ?också , i stället för @, för att undvika konflikter med username@host formatet.

Användare, grupper och internetanslutna konton för arbetsgrupper matchas alltid med sitt lokala kontonamn (ingen domändel, som liknar unix-standardnamn). Domänanvändare och grupper är strikt mappade till NameSamCompatible-formatet domain_short_name\user_name.

Alla användar- och gruppbaserade konfigurationsregler måste följa det här formatet.

I följande exempel nekas contoso\admin från värden 192.168.2.23 och alla användare från Contoso-domänen blockeras. Det tillåter också användare som är medlemmar i contoso\sshusers grupperna och contoso\serveroperators .

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

I följande exempel kan användaren localuser logga in från värden 192.168.2.23 och tillåter medlemmar i gruppen sshusers.

AllowUsers localuser@192.168.2.23
AllowGroups sshusers

AuthenticationMethods

För Windows OpenSSH är password de enda tillgängliga autentiseringsmetoderna och publickey.

Important

Autentisering via ett Microsoft Entra-konto stöds inte för närvarande.

AuthorizedKeysFile

Standardvärdet är .ssh/authorized_keys. Om du inte anger en absolut sökväg letar OpenSSH efter filen i förhållande till din hemkatalog, till exempel C:\Users\username. Om användaren tillhör administratörsgruppen %programdata%/ssh/administrators_authorized_keys används den i stället.

Tip

Filen administrators_authorized_keys får bara ha behörighetsposter för NT Authority\SYSTEM kontot och BUILTIN\Administrators säkerhetsgruppen. NT Authority\SYSTEM-kontot måste beviljas fullständig kontroll. Säkerhetsgruppen BUILTIN\Administrators krävs för att administratörer ska kunna hantera de auktoriserade nycklarna. Du kan välja den åtkomst som krävs. Om du vill bevilja behörigheter kan du öppna en upphöjd PowerShell-prompt och köra kommandot icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F".

ChrootDirectory (stöd har lagts till i v7.7.0.0)

Det här direktivet stöds endast med SFTP-sessioner. En fjärrsession i cmd.exe tar inte hänsyn till ChrootDirectory. Om du vill konfigurera en endast sftp-chroot-server anger du ForceCommand till internal-sftp. Du kan också konfigurera SCP med chroot genom att implementera ett anpassat gränssnitt som endast tillåter SCP och SFTP.

GSSAPIAuthentication

Konfigurationsargumentet GSSAPIAuthentication anger om GSSAPI-baserad användarautentisering (Kerberos) tillåts. Standardvärdet för GSSAPIAuthentication är nej.

GSSAPI-autentisering kräver också att växeln -K anger värdnamnet när du använder OpenSSH-klienten. Du kan också skapa en motsvarande post i SSH-klientkonfigurationen. I Windows läser OpenSSH-klienten konfigurationsdata från %userprofile%\.ssh\config som standard.

Här är ett exempel på GSSAPI OpenSSH-klientkonfiguration:

# 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

GSSAPI är endast tillgängligt från och med Windows Server 2022, Windows 11 och Windows 10 (maj 2021 Update).

HostKey

Standardvärdena är:

#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

Om standardvärdena inte finns genererar sshd dem automatiskt vid en tjänststart.

Match

Matchar villkor med ett eller flera kriterier. Vid en matchning tillämpas de efterföljande konfigurationsargumenten. Match använder mönsterreglerna som beskrivs i avsnittet AllowGroups, AllowUsers, DenyGroups och DenyUsers . Användar- och gruppnamn ska vara i gemener.

PermitRootLogin

Inte tillämpligt i Windows. Om du vill förhindra att administratörer loggar in använder du Administratörer med DenyGroups direktivet.

SyslogFacility

Om du behöver filbaserad loggning använder du LOCAL0. Loggar genereras under %programdata%\ssh\logs. För andra värden, inklusive standardvärdet, dirigerar AUTH loggningen till ETW. Mer information finns i Loggningsanläggningar i Windows.

Konfigurationsargument

Följande konfigurationsargument är tillgängligt från och med Windows Server 2022, Windows 11 och Windows 10 (maj 2021 Update):

  • GSSAPIAuthentication

Följande konfigurationsargument är inte tillgängliga i OpenSSH-versionen som levereras i Windows Server och Windows:

  • 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