OpenSSH Server

Microsoft hat sich seit dem Abschied von Steve Ballmer mit der neuen Führungsriege rund um Satya Nadella den Open Source Entwicklungen und der dortigen freien Software (siehe GNU/Linux) geöffnet.

Die PowerShell verfügt seit langem über den Standardclient dieser Entwicklerumgebungen - den OpenSSH Client aus der dortigen Umgebung für FreeBSD und Linux. OpenSSH ist für alle gängigen Betriebssysteme und Hardware-Plattformen einschließlich Windows verfügbar.

Microsoft stellt den OpenSSH-Client automatisch und den OpenSSH-Server per optionalem Feature bereit.

# Admin PowerShell oder alternative Admin-GUI
Get-WindowsCapability -Online | Where-Object { $_.Name -like "*openssh.server*" } |
   Add-WindowsCapability -Online

Der OpenSSH-Server sollte noch über die Dienste der Maschine auf Start und Starteigenschaften analysiert und konfiguriert werden.

PS C:\Users\Administrator.FIRMA> Get-Service -Name sshd

Status   Name               DisplayName
------   ----               -----------
Stopped  sshd               OpenSSH SSH Server


PS C:\Users\Administrator.FIRMA> Get-Service -Name sshd | Select-Object -Property *


Name                : sshd
RequiredServices    : {}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : OpenSSH SSH Server
DependentServices   : {}
MachineName         : .
ServiceName         : sshd
ServicesDependedOn  : {}
ServiceHandle       : SafeServiceHandle
Status              : Stopped
ServiceType         : Win32OwnProcess
StartType           : Manual
Site                :
Container           :

Wir sollten also in diesem Fall noch den Server starten und natürlich auch für eine automatischen Start sorgen.

Start-Service -Name sshd
# Check Status
Get-Service -Name sshd | Select-Object -Property *
# Set StartType
Set-Service -Name sshd -StartupType Automatic

Die Verbindung zum OpenSSH-Server kann dann über einen beliebigen SSH-Client erfolgen:

  • SSH-CLI in PowerShell

  • Putty

  • MobaXterm (gerne auch mit SFTP/Dateihandling)

Beispielhafter Aufruf in Konsole:

ssh firma\Administrator@server-IP
# this is Standard CMD
# start a PowerShell session:
powershell

Und schon hat man eine sichere PowerShell Verbindung per SSH.

SSH mit MobaXterm auf eine Windows Gateway-Server

SSH mit MobaXterm auf eine Windows Gateway-Server