Überblick
Endlich bietet auch die Windows PowerShell eine Möglichkeit, um einen SSH-Zuriff zu erstellen. I. d. R. musste man immer auf Tools wie Putty oder MobaXterm zurückgreifen. Neuerdings kann man sich mit einem Drittanbieter Tool ein Modul in der Windows PowerShell installieren, mit dem man einen Zugriff aufbauen kann. Voraussetzung hierfür ist allerdings Windows 10* oder das Windows Management Framework 5.
Voraussetzungen für SSH
Neben diesen beiden oben genannte Bedingungen braucht man auch ein entsprechendes Modul. Das Modul mit dem Namen PoSH-SSH muss entsprechend in der PowerShell installiert werden. Module sind vom Prinzip Befehlserweiterungen mit welchen man zusätzliche Cmdlets erhält. Mehr zu Modulen findet ihr im Artikel: Was sind PowerShell Module.
In diesem Fall für SSH wird eben das Modul Posh-SSH benötigt. Damit erhält man anschließend eine Menge Befehle. Zur Verfügung gestellt wird es vom NuGet Anbieter. Sollte man das Paket mittels folgendem Befehl suchen, so wird man automatisch hingewiesen, das der Paketmanager installiert werden muss.
Find-Module PoSH-SSH | Install-Module

Nach dem Einbinden von PoSH-SSH kann man sich mal anzeigen lassen, welche Cmdlets darin enthalten sind. Neben SSH sind auch Cmdlets für SFTP in dem Moduel drinnen.
get-command -Module Posh-SSH
Eine SSH Verbindung erstellen
Für den Aufbau einer SSH-Sitzung ist das Cmdlet New-SSHSession zuständig. Um den Befehl mit seinen nötigen Parametern und Option anzeigen zu lassen, verwende ich immer gerne die Hilfe. Auch für dieses Cmdlet würde ich das empfehlen. Mit der Option example erhält man auch gleich einige Beispiel.
Get-Help New-SSHSession -Detailed

Im folgenden Beispiel wurde eine SSH-Session auf einem Linux Rootserver geöffnet. Automatisch wird man nach dem Fingerprint gefragt, welcher natürlich mit „yes“ bestätigt werden muss. Das anschließend eine Sitzung aufgebaut ist, kann man anhand von „Connected“ erkennen.
New-SSHSession -ComputerName 172.16.3.171 -Credential test



Die nächste entscheidende Aufgabe ist natürlich das Eingeben von Befehlen. Das nötige Cmdlet ist hier Invoke-SSHCommand. Auch hier empfiehlt es sich mal die Hilfe dazu anzeigen zu lassen.
Man benötigt zum einen die SessionID und anschließend das auszuführende Kommando. Im unten dargestellten Beispiel wurde per SSH die Anfrage nach dem Installieren Linux Kernel auf dem Rootserver abgefragt.
Invoke-SSHCommand -SessionId 0 -Command "uname -a"

Um am Ende die Verbindung wieder zu beenden braucht man das Remove-SSHSession Cmdlet. Ob dies korrekt ausgeführt wurde bzw. ob noch eine SSHSession besteht könnte man abschließend mit Get-SSHSession prüfen. Sofern hier nichts mehr angezeigt wird, ist die Session beendet.
Eine interessante Option ist das Öffnen eines SSHShellStreams. Damit ist es möglich mehrere Kommandos einzugeben und direkt auszuführen.


Fazit
Die Eingabe von Kommandos ist allerdings nicht ganz so komfortabel wie mit Putty. Aber es ist schon mal hervorragend, wenn man sich schnell mal drauf schalten kann, um nur etwas zu überprüfen. Übrigens kann man die BASH auch unter Windows installieren. Damit ist es möglich wie unter Linux eine ganz normale SSH-Session aufzubauen. Wie man die BASH unter Linux installiert, könnt ihr gerne im Artikel: Linux BASH unter Windows installieren, nachlesen.
Wenn du mehr über die Windows PowerShell lernen möchtest, so findest du auch immer hervorragende und ausführliche Kurse auf Udemy. Zu empfehlen sind die Kurse von Patrick Grünauer: Der Einsteigerkurse ist dabei folgender: Automatisierung mit PowerShell (1/3): Grundlagen.*
Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf gelangt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhält IT-Learner eine kleine Provision. Der Preis ändert sich für euch nicht. Danke für eure Unterstützung! Letzte Aktualisierung am 9.11.2023
Das könnte ich auch interessieren:
- Mit Windows 10 eine SSH Verbindung erstellen und ohne Passwortabfrage zugreifen – Konfiguration des ssh-agent unter Windows 10
- Neue Methode um mit Windows 10 1803 eine SSH Verbindung herstellen zu können
- Mit der Windows PowerShell prüfen ob bestimmte Ports geöffnet sind – Einen Portscan durchführen
- Den Rootserver per SSH administrieren – Teil 2 der Artikelserie
- Mit der Windows PowerShell eine Remoteverbindung erstellen – entfernte Rechner per PowerShell administrieren
Steigere dein Wissen
Kostenlose Befehlsreferenzen und E-Books herunterladen
Da das das erste Modul war, dass ich jemals installieren wollte, würde ich die Zeile „Find-Module PoSH-SSH“ ändern in „Find-Module PoSH-SSH | Install-Module“. Damit wird das Modul gefunden und direkt installiert.
Hallo Alex, klar damit kannst du zwei Sachen auf einmal erledigen. Ich habe es angepasst. Falls du von Windows 10 aus per SSH auf einen Server zugreifen möchtest, dann würde ich dir das Feature Openssh-Client in Windows 10 empfehlen. Folgender Artikel beschreibt dessen Konfiguration: Neue Methode um mit Windows 10 1803 eine SSH Verbindung herstellen zu können