Lab/Windows Server 2022-ssh
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 ${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