PowerShell über SSH verbinden

Mit PowerShell SSH können Sie von praktisch jedem Ort aus auf Remote-Systeme zugreifen und diese verwalten. Zudem bietet SSH detaillierte Protokollierungsfunktionen, die eine umfassende Überwachung und Nachverfolgung von Aktivitäten auf dem Server gestatten.

Das sind die Voraussetzungen für PowerShell SSH

Die Integration von SSH in Windows PowerShell gibt Ihnen die Möglichkeit, SSH-Verbindungen zu Remote-Systemen herzustellen und SSH-Befehle in einem PowerShell Script auszuführen. Dies erleichtert die Verwaltung und Automatisierung von Aufgaben in verteilten IT-Infrastrukturen, insbesondere in einer heterogenen Umgebung, in der sowohl Windows- als auch Nicht-Windows-Systeme vorhanden sind.

Für die Nutzung von PowerShell SSH sollten Sie folgende Anforderungen erfüllen:

  • PowerShell-Installation: Stellen Sie sicher, dass PowerShell v6+ auf Ihrem lokalen Computer installiert ist. PowerShell ist in der Regel in Windows vorinstalliert, aber Sie müssen kontrollieren, dass Sie eine Version verwenden, die SSH-Unterstützung bietet.
  • SSH-Client: Sie benötigen einen SSH-Client in Ihrer PowerShell-Umgebung, um SSH-Verbindungen herzustellen. In Windows 10/11 und Windows Server 2019 ist OpenSSH standardmäßig verfügbar. Wenn Sie eine ältere Windows-Version benutzen, müssen Sie möglicherweise OpenSSH manuell installieren.
  • SSH-Server: Der SSH-Server ist der Zielserver, mit dem sich verbunden werden soll. Dies kann ein Linux-Server, ein Netzwerkgerät oder ein anderer SSH-fähiger Host sein.
  • Netzwerkzugriff: Ihr lokaler Computer sollte Zugriff auf das Netzwerk haben und den Remote-SSH-Server erreichen können. Port 22 muss für SSH in den Firewall-Regeln geöffnet sein.
  • PowerShell-Module: Es gibt PowerShell-Module, die speziell für die Verwendung von SSH entwickelt wurden, wie das „PSSession“ oder „Posh-SSH“ Modul. Sie sollten überprüfen, dass das entsprechende Modul auf Ihrem System installiert ist, um SSH-Funktionalität in PowerShell nutzen zu können.
  • Berechtigungen: Sie brauchen Administratorrechte oder erweitere Befugnisse sowie ein Passwort oder einen SSH-Schlüssel, um SSH-Verbindungen von Ihrem lokalen Computer aus herzustellen und auf den Remote-Server zuzugreifen.
Dedicated Server
Dedizierte Server mit modernsten Prozessoren
  • 100 % Enterprise-Hardware
  • Minutengenaue Abrechnung
  • Nur bei uns: Cloud-Funktionen

Schritt-für-Schritt-Anleitung: PowerShell SSH nutzen

Bevor Sie Secure Shell (SSH) in PowerShell verwenden können, müssen Sie den OpenSSH-Server einrichten. Danach können Sie die PowerShell SSH Session starten und Befehle auf dem Remote-System ausführen.

Schritt 1: OpenSSH installieren

Klicken Sie auf das Startmenü oder geben Sie „PowerShell“ in die Suchleiste ein. Wählen Sie Run as administrator aus. Dies öffnet die Windows PowerShell. Mit dem folgenden PowerShell-Befehl können Sie das OpenSSH-Feature auf Ihrem Windows-Computer installieren:

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

Schritt 2: OpenSSH-Dienst starten

Wenn die Installation abgeschlossen ist, dürfen Sie den OpenSSH-Dienst starten:

Start-Service sshd
powershell

Sie können kontrollieren, ob der OpenSSH-Dienst läuft:

Get-Service sshd
powershell

Der Status Running gibt an, dass sshd ordnungsgemäß ausgeführt wird.

powershell-get-service-ssh.png
Get-Service sshd prüft die Ausführung des SSH-Dienstes.

Schritt 3: SSH-Server-Dienst automatisch starten

Um den OpenSSH-Server-Dienst bei jedem Windows-Neustart zu aktivieren, können Sie folgenden Befehl eingeben:

Set-Service -Name sshd -StartupType 'Automatic'
powershell

Schritt 4: Firewall anpassen

Wenn die Windows-Firewall aktiv ist, sollten Sie eine Regel hinzufügen, um den SSH-Datenverkehr auf Port 22 (dem Standard-SSH-Port) zuzulassen.

New-NetFirewallRule -Name 'OpenSSH-Server' -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
powershell

Schritt 5: SSH-Verbindung herstellen

Sie können sich nun mit Ihrem SSH-Server von einem anderen Gerät aus einloggen. Öffnen Sie dazu PowerShell auf Ihrem Client PC und geben Sie den SSH-Befehl mit dem Benutzernamen und der Serveradresse an.

ssh username@servername
powershell

Ersetzen Sie dabei „username“ durch Ihren SSH-Benutzernamen und „servername“ durch die IP-Adresse oder den Hostnamen des Remote-Servers. Wenn Sie den Befehl starten, werden Sie aufgefordert, Ihr SSH-Passwort einzugeben – es sei denn, Sie verwenden SSH-Schlüssel für die Authentifizierung.

powershell-ssh-login.png
SSH-Passwort eingeben

Schritt 6: Arbeiten in der SSH-Sitzung

Sobald Sie eine SSH-Verbindung hergestellt haben, können Sie Kommandos auf dem Remote-Server ausführen, als wären Sie physisch auf dem Server angemeldet. Um die SSH-Sitzung zu beenden und zur lokalen PowerShell zurückzukehren, steht Ihnen der Befehl exit zur Verfügung.

Es gibt eine Reihe von SSH-Befehlen in PowerShell. Das Kommando pwd steht für „print working directory“ und zeigt Ihnen zum Beispiel das aktuelle Arbeitsverzeichnis an:

powershell-ssh-commands-example.png
Beispiel für SSH-Befehle in PowerShell

Hier ist eine Liste von Befehlen, die Sie in PowerShell SSH verwenden können:

  • ls/dir: zeigt den Inhalt eines Verzeichnisses an
  • cd: wechselt das Verzeichnis auf dem Remote-Server
  • touch/New-Item: erstellt eine neue Datei
  • rm/Remove-Item: löscht Dateien oder Verzeichnisse
  • mv/Move-Item: verschiebt oder benennt Dateien und Verzeichnisse um
  • useradd: fügt einen Benutzer hinzu
  • scp: überträgt Dateien zwischen Client und Server

Weitere Commands finden Sie in unserem Überblick der PowerShell-Befehle.

War dieser Artikel hilfreich?
Page top