Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt de Windows-specifieke configuratie voor OpenSSH-server (sshd) beschreven.
OpenSSH onderhoudt gedetailleerde documentatie voor configuratieopties online op OpenSSH.com. Deze documentatie wordt niet gedupliceerd in deze documentatieset.
OpenSSH-configuratiebestanden
OpenSSH heeft configuratiebestanden voor zowel server- als clientinstellingen. OpenSSH is opensource en is toegevoegd aan Windows Server- en Windows-clientbesturingssystemen vanaf Windows Server 2019 en Windows 10 (build 1809). Opensource-documentatie voor OpenSSH-configuratiebestanden wordt hier niet herhaald. Clientconfiguratiebestanden vindt u op de ssh_config handmatige pagina. OpenSSH-serverconfiguratiebestanden vindt u op de sshd_config handmatige pagina.
OpenSSH Server leest standaard configuratiegegevens %programdata%\ssh\sshd_config . U kunt een ander configuratiebestand opgeven door deze uit te voeren sshd.exe met de -f parameter. Als het bestand ontbreekt, genereert sshd er een met de standaardconfiguratie wanneer de service wordt gestart.
In Windows leest de OpenSSH-client (ssh) configuratiegegevens uit een configuratiebestand in de volgende volgorde:
- Via
ssh.exegestart met de-Fparameter, met een pad naar een configuratiebestand en een ingangsnaam van dat bestand opgegeven. - Via het configuratiebestand van een gebruiker op
%userprofile%\.ssh\config. - Via het systeembrede configuratiebestand bij
%programdata%\ssh\ssh_config.
De standaardshell configureren voor OpenSSH in Windows
De standaardopdrachtshell biedt de ervaring die een gebruiker ziet bij het maken van verbinding met de server met behulp van SSH. De eerste standaardinstelling in Windows is de Windows-opdrachtprompt (cmd.exe). Windows bevat ook PowerShell en niet-Microsoft-opdrachtshells zijn ook beschikbaar voor Windows en kunnen worden geconfigureerd als de standaardshell voor een server.
Als u de standaardopdrachtshell wilt instellen, controleert u eerst of de OpenSSH-installatiemap zich op het systeempad bevindt.
Voor Windows is %systemdrive%\Windows\System32\opensshde standaardinstallatiemap.
Met de volgende opdracht wordt de huidige padinstelling weergegeven en wordt de standaardmap voor de OpenSSH-installatie toegevoegd.
| Opdrachtshell | Opdracht om te gebruiken |
|---|---|
| Command | path |
| PowerShell | $env:path |
U kunt de standaard-ssh-shell in het Windows-register configureren door het volledige pad naar het shell-uitvoerbare bestand toe te voegen aan HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH in de tekenreekswaarde DefaultShell.
In het volgende voorbeeld wordt met de PowerShell-opdracht met verhoogde bevoegdheid de standaardshell powershell.exe ingesteld op OpenSSH-server. (Het instellen van dit pad is niet van toepassing op OpenSSH-client.)
$NewItemPropertyParams = @{
Path = "HKLM:\SOFTWARE\OpenSSH"
Name = "DefaultShell"
Value = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
PropertyType = "String"
Force = $true
}
New-ItemProperty @NewItemPropertyParams
Windows-configuraties in sshd_config
In Windows leest sshd standaard configuratiegegevens %programdata%\ssh\sshd_config . U kunt een ander configuratiebestand opgeven door deze uit te voeren sshd.exe met de -f parameter.
Als het bestand ontbreekt, genereert sshd er een met de standaardconfiguratie wanneer de service wordt gestart.
In de volgende secties worden windows-specifieke configuratie-instellingen beschreven die mogelijk zijn via vermeldingen in sshd_config. Er zijn andere configuratie-instellingen die hier niet worden vermeld. Ze worden uitgebreid besproken in de Win32 OpenSSH-documentatie.
Tip
OpenSSH Server (sshd) leest het configuratiebestand wanneer de service wordt gestart. Voor wijzigingen in het configuratiebestand moet de service opnieuw worden opgestart.
ToestaanGroepen, ToestaanGebruikers, WeigerenGroepen, WeigerenGebruikers
U kunt bepalen welke gebruikers en groepen verbinding kunnen maken met de server met behulp van de AllowGroupsinstructies en AllowUsersDenyGroupsDenyUsersinstructies.
De richtlijnen voor toestaan en weigeren worden verwerkt in de volgende volgorde: DenyUsers, AllowUsers, DenyGroupsen ten slotte AllowGroups.
Alle accountnamen moeten in kleine letters worden opgegeven.
Zie de sshd_config OpenBSD handmatige pagina voor meer informatie over patronen en jokertekens in ssh_config.
Gebruik de volgende indeling bij het configureren van op gebruikers/groepen gebaseerde regels met een domeingebruiker of groep: user?domain*
Windows staat meerdere indelingen toe voor het opgeven van domein-principals, maar kan conflicteren met standaard Linux-patronen.
* Daarom wordt deze gebruikt om FQDN's (Fully Qualified Domain Names) te behandelen. Deze benadering gebruikt ?ook , in plaats van @, om conflicten met de username@host indeling te voorkomen.
Werkgroepgebruikers, groepen en accounts met internetverbinding worden altijd omgezet in hun lokale accountnaam (geen domeinonderdeel, vergelijkbaar met standaard Unix-namen). Domeingebruikers en -groepen worden strikt omgezet in nameSamCompatible-indelingdomain_short_name\user_name.
Alle configuratieregels op basis van gebruikers en groepen moeten voldoen aan deze indeling.
Het volgende voorbeeld weigert contoso\admin van de host 192.168.2.23 en blokkeert alle gebruikers uit het Contoso-domein. Hiermee kunnen gebruikers die lid zijn van de contoso\sshusers en contoso\serveroperators groepen ook.
DenyUsers contoso\admin@192.168.2.23
DenyUsers contoso\*
AllowGroups contoso\sshusers contoso\serveroperators
In het volgende voorbeeld kan de gebruiker localuser zich aanmelden vanaf de host 192.168.2.23 en leden van de groep sshuserstoestaan.
AllowUsers localuser@192.168.2.23
AllowGroups sshusers
AuthenticationMethods
Voor Windows OpenSSH zijn password de enige beschikbare verificatiemethoden en publickey.
Important
Verificatie via een Microsoft Entra-account wordt momenteel niet ondersteund.
AuthorizedKeysFile
De standaardwaarde is .ssh/authorized_keys. Als u geen absoluut pad opgeeft, zoekt OpenSSH naar het bestand ten opzichte van uw basismap, zoals C:\Users\username. Als de gebruiker deel uitmaakt van de beheerdersgroep, %programdata%/ssh/administrators_authorized_keys wordt in plaats daarvan gebruikt.
Tip
Het administrators_authorized_keys-bestand mag alleen machtigingsvermeldingen hebben voor het account en NT Authority\SYSTEM de BUILTIN\Administrators beveiligingsgroep. Het NT Authority\SYSTEM-account moet volledig beheer krijgen. De BUILTIN\Administrators beveiligingsgroep is vereist om beheerders in staat te stellen de geautoriseerde sleutels te beheren. U kunt de vereiste toegang kiezen. Als u machtigingen wilt verlenen, kunt u een PowerShell-prompt met verhoogde bevoegdheid openen en de opdracht icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"uitvoeren.
ChrootDirectory (ondersteuning toegevoegd in v7.7.0.0)
Deze richtlijn wordt alleen ondersteund met SFTP-sessies. Een externe sessie in cmd.exe respecteert ChrootDirectory niet. Als u een sftp-only chroot-server wilt instellen, stelt u ForceCommand in op internal-sftp. U kunt SCP ook instellen met chroot door een aangepaste shell te implementeren die alleen SCP en SFTP toestaat.
GSSAPIAuthentication
Het GSSAPIAuthentication configuratieargument geeft aan of gebruikersverificatie op basis van GSSAPI (Kerberos) is toegestaan. De standaardwaarde GSSAPIAuthentication is nee.
GSSAPI-verificatie vereist ook het gebruik van de -K switch die de hostnaam opgeeft wanneer u de OpenSSH-client gebruikt. U kunt ook een bijbehorende vermelding maken in de configuratie van de SSH-client. In Windows leest de OpenSSH-client standaard configuratiegegevens %userprofile%\.ssh\config .
Hier volgt een voorbeeld van de configuratie van de GSSAPI OpenSSH-client:
# 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 is alleen beschikbaar vanaf Windows Server 2022, Windows 11 en Windows 10 (update van mei 2021).
HostKey
De standaardwaarden zijn:
#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
Als de standaardinstellingen niet aanwezig zijn, genereert sshd deze automatisch op een servicestart.
Match
Komt overeen met voorwaarden met behulp van een of meer criteria. Bij een overeenkomst worden de volgende configuratieargumenten toegepast. Match maakt gebruik van de patroonregels die worden behandeld in de sectie AllowGroups, AllowUsers, DenyGroups, DenyUsers . Namen van gebruikers en groepen moeten in kleine letters staan.
PermitRootLogin
Niet van toepassing in Windows. Gebruik beheerders met de DenyGroups instructie om te voorkomen dat beheerders zich aanmelden.
SyslogFacility
Als u logboekregistratie op basis van bestanden nodig hebt, gebruikt LOCAL0u . Logboeken worden gegenereerd onder %programdata%\ssh\logs. Voor elke andere waarde, inclusief de standaardwaarde, stuurt AUTH het loggen naar ETW. Zie Logging Facilities in Windows voor meer informatie.
Configuratieargumenten
Het volgende configuratieargument is beschikbaar vanaf Windows Server 2022, Windows 11 en Windows 10 (update van mei 2021):
GSSAPIAuthentication
De volgende configuratieargumenten zijn niet beschikbaar in de OpenSSH-versie die wordt geleverd in Windows Server en Windows:
AcceptEnvAllowStreamLocalForwardingAuthorizedKeysCommandAuthorizedKeysCommandUserAuthorizedPrincipalsCommandAuthorizedPrincipalsCommandUserExposeAuthInfoGSSAPICleanupCredentialsGSSAPIStrictAcceptorCheckHostbasedAcceptedKeyTypesHostbasedAuthenticationHostbasedUsesNameFromPacketOnlyIgnoreRhostsIgnoreUserKnownHostsKbdInteractiveAuthenticationKerberosAuthenticationKerberosGetAFSTokenKerberosOrLocalPasswdKerberosTicketCleanupPermitTunnelPermitUserEnvironmentPermitUserRCPidFilePrintLastLogPrintMotdRDomainStreamLocalBindMaskStreamLocalBindUnlinkStrictModesX11DisplayOffsetX11ForwardingX11UseLocalhostXAuthLocation