Lab/Windows Server 2022-ssh

From Slaskete wiki
Revision as of 21:13, 25 October 2023 by Einarjh (talk | contribs)
Jump to navigation Jump to search

Det har blitt ganske enkelt å sette opp SSH på Windows Server slik at man kan utføre driftsoppgaver fra f.eks. Linux. Dette er spesielt fint hvis man kjører Core.

Installer SSHD på serveren

Komplette instruksjoner ligger hos Microsoft her. Du må starte fra kommandolinjen/powershell på selve serveren.

Installer OpenSSH Server:

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

Start tjenesten og sett den til å starte automatisk:

Start-Service sshd

Set-Service -Name sshd -StartupType 'Automatic'

Allerede nå kan du logge inn på serveren akkurat som du skulle forvente. Legg spesielt merke til at serveren faktisk lager et ED25519-sertifikat. Når du logger inn får du en gammeldags BATCH/COMMAND.COM-sesjon. Vi vil ha PowerShell!

Sett opp PowerShell-sesjon i sshd

Komplette instruksjoner ligger hos Microsoft

Sett opp en register-nøkkel som gjør det innebygde PowerShell-et til default-shell:

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

Bonus: Installer nyeste PowerShell slik at PowerShell-remoting fungerer fra Linux sin PowerShell også

Komplette instruksjoner ligger hos Microsoft her og her. OBS: det er stor sannsynlighet for at det har kommet nyere PowerShell siden sist.

For dette steget bruker vi notepad, så enten må du bruke UNC-path //server/c$/ProgramData/ssh/ fra en Windows-maskin med GUI eller så må du bruke den interaktive sesjonen (lokalt konsoll) på serveren. Her demonstreres sistnevnte.

cd $env:ProgramData\ssh

notepad sshd_config

Lim inn følgende linje, for eksempel mot slutten av filen, under Subsystem sftp-linjen:

Subsystem powershell c:/progra~1/powershell/7/pwsh.exe -sshs -nologo

Lagre og lukk filen, og start sshd på nytt:

Restart-Service sshd

Dette kan du trygt gjøre fra SSH:

cd $env:Home\Downloads

Invoke-WebRequest -Uri "https://github.com/PowerShell/PowerShell/releases/download/v7.3.8/PowerShell-7.3.8-win-x64.msi" -OutFile ".\PowerShell-7.3.8-win-x64.msi"

msiexec.exe /package PowerShell-7.3.8-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1

Etter en kort stund skal det være mulig å bruke PowerShell-remoting også, slik:

Enter-PSSession -HostName server -UserName admin_einar