Vollständige Anleitung zur Verwendung von SSH von PowerShell: Konfiguration und praktische Beispiele

Letzte Aktualisierung: 07/05/2025
Autor: Holger
  • Powershell ermöglicht Ihnen die Verbindung und Verwaltung von Remote-Systemen mit SSH nativ in Windows 10/11 und aktuellere Versionen.
  • Die Installation und Konfiguration von OpenSSH als Client und Server ist einfach und ermöglicht je nach Sicherheitsanforderungen eine Kennwort- oder Public-Key-Authentifizierung.
  • Zu den erweiterten Funktionen von PowerShell SSH gehören Automatisierung, Sitzungsverwaltung und Anpassung, wodurch die Remoteverwaltung in gemischten Umgebungen vereinfacht wird.

SSH-Verbindung von PowerShell

Power Verbindung über SSH direkt von PowerShell aus herstellen Es ist nicht länger eine Aufgabe, die nur Administrationsgurus vorbehalten ist. Heute kann jeder Windows-Benutzer über eine Terminal SSH dank nativer Integrationen in Windows 10 und höher. Der Weg dorthin ist nicht nur einfacher als je zuvor, sondern wurde auch hinsichtlich Stabilität und Sicherheit verfeinert, was ihn zu einer robusten Alternative zu herkömmlichen externen Clients macht.

Wenn Sie schon einmal ein Remote-System verwalten, Dateien kopieren, überprüfen Protokolle o laufen Befehle auf einem Server Linux oder Windows, ohne Ihren Desktop zu verlassen. Diese ausführliche Anleitung dient als Referenz. Sie lernen alles von den Anforderungen, der Installation und Konfiguration von OpenSSH auf verschiedenen Plattformen bis hin zu praktischen Beispielen sowohl grundlegender Befehle als auch erweiterter PowerShell-SSH-Funktionen, um die Remoteverwaltung optimal zu nutzen.

Was ist SSH und warum sollte man es von PowerShell aus verwenden?

SSH (Secure Shell) ist ein sicheres Kommunikationsprotokoll, das Ihnen den Zugriff auf Remote-Systeme und deren Verwaltung über ein Terminal ermöglicht.. Der größte Vorteil gegenüber anderen Protokollen wie Telnet ist die Ende-zu-Ende-Verschlüsselung, die sicherstellt, dass alle Informationen, einschließlich Benutzernamen und Passwörter, vollständig geschützt übertragen werden.

PowerShell hingegen ist die erweiterte Windows-Befehlskonsole, wird sowohl für Benutzer- als auch für Verwaltungsaufgaben verwendet. Seit mehreren Jahren verfügt Windows nun über einen nativen SSH-Client, mit dem Sie die volle Leistungsfähigkeit von SSH direkt aus PowerShell heraus nutzen können. Dadurch wird die Verwaltung von Linux, Windows und anderen Remote-Geräten einfach und sicher.

Voraussetzungen für die Verwendung von SSH aus PowerShell

SSH PowerShell-Anforderungen

Bevor Sie mit der Verwaltung von Remote-Systemen über PowerShell beginnen, müssen Sie einige grundlegende Anforderungen auf Ihrem Computer und dem Zielcomputer überprüfen:

  • PowerShell aktualisiert: Es wird empfohlen, PowerShell 6 oder höher zu verwenden, um alle Funktionen nutzen zu können. In Windows 10 und 11 ist es vorinstalliert, aber es ist eine gute Idee, die Version mit dem Befehl zu überprüfen $PSVersionTable.PSVersion.
  • OpenSSH-Client: Sie müssen den OpenSSH-Client installiert haben. Ab Windows 10 (Build 1809) und Windows Server 2019 ist es als optionale Funktion enthalten, Sie können es jedoch bei Bedarf manuell installieren.
  • SSH-Server auf dem Remotecomputer aktiviert: Auf dem System, mit dem Sie eine Verbindung herstellen, muss SSH aktiviert sein (dies kann ein Linux-Computer, ein Windows-Computer, ein Netzwerkgerät usw. sein).
  • Netzwerkzugriff: Der Computer, von dem aus Sie eine Verbindung herstellen, muss die IP oder Domäne des SSH-Servers erreichen können. Außerdem muss Port 22 in Ihrer Firewall unbedingt geöffnet sein.
  • Benutzerberechtigungen: Obwohl es nicht immer unbedingt erforderlich ist, Administrator zu sein, benötigen Sie in vielen Szenarien erweiterte Berechtigungen, um Funktionen zu installieren oder auf Remotesysteme zuzugreifen.
  Der Weg zum Versenden von Gruppen-E-Mails auf iPhone und iPad

Überprüfen Sie die OpenSSH-Installation und -Version unter Windows

Um zu überprüfen, ob der OpenSSH-Client auf Ihrem System verfügbar ist, öffnen Sie PowerShell und führen Sie Folgendes aus:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

Sie sehen den Status installiert (Installiert) oder nicht vorhanden (Nicht vorhanden). sowohl für den Client als auch für den Server. Wenn es nicht installiert ist, können Sie es wie folgt hinzufügen:

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

Für den Server, falls Sie den Empfang von SSH-Verbindungen auf Ihrem eigenen Computer aktivieren möchten:

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

Nach der Installation können Sie den Befehl „ssh“ direkt in PowerShell oder der Eingabeaufforderung verwenden.

Konfigurieren und Starten des SSH-Dienstes unter Windows

Wenn Sie SSH-Verbindungen unter Windows akzeptieren möchten, müssen Sie sicherstellen, dass der Dienst gestartet ist. Um es zu starten und so zu konfigurieren, dass es bei jedem Systemstart automatisch startet, führen Sie Folgendes aus:

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

Es wird empfohlen zu überprüfen, ob bereits eine Firewall-Regel vorhanden ist, die eingehenden Datenverkehr über Port 22 zulässt. (SSH):

if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
 Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
 New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
 Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}

Erste Schritte: Verbindung über SSH von PowerShell aus herstellen

Sobald Sie alles eingerichtet haben, können Sie eine SSH-Sitzung mit einem einfachen PowerShell-Befehl starten:

ssh usuario@servidor

Denken Sie daran, „Benutzer“ durch Ihren Benutzernamen auf dem Remotecomputer und „Server“ durch den IP- oder DNS-Namen zu ersetzen. Wenn Sie es ausführen, werden Sie aufgefordert, den Hostschlüssel (beim ersten Mal) und das Kennwort zu akzeptieren.

Echtes Beispiel für die Verbindung mit einem Linux-Server:

ssh root@192.168.1.100

Sie können auch eine Verbindung zu anderen Windows-Systemen mit einem aktiven SSH-Server oder zu kompatiblen Netzwerkgeräten herstellen.

Erweiterte Parameter und Schlüsselauthentifizierung

SSH bietet viel Flexibilität bei der Authentifizierung und beim Herstellen einer Verbindung. Die häufigsten Parameter sind:

  • -i So geben Sie einen privaten Schlüssel für die kennwortlose Authentifizierung an: ssh -i ruta/claves/id_rsa usuario@servidor
  • -p So geben Sie einen anderen Port als 22 an: ssh -p 2222 usuario@servidor
  • -v für den ausführlichen Modus, nützlich zum Debuggen.
  Wie kann ich verhindern, dass Apps auf meinem Android installiert werden?

In PowerShell können Sie mit ssh-keygen generierte Schlüssel verwenden und sie für zusätzliche Sicherheit und Komfort auf den Remote-Server kopieren und so Passwörter vermeiden.

Verwalten und automatisieren Sie erweiterte SSH-Sitzungen mit PowerShell

Über den Basisbefehl hinaus enthält PowerShell erweiterte Cmdlets für die Arbeit mit SSH-Sitzungen wie Neue PSSession, Enter-PSSession und Invoke-Command. Dies verbessert die Remote-Verwaltung und ermöglicht Ihnen die Automatisierung von Skripten und Wartungsaufgaben, ohne dass Sie sich jedes Mal manuell anmelden müssen.

  • Neue PSSession ermöglicht Ihnen das Erstellen einer neuen Remote-Sitzung durch Angabe von Host, Benutzer und Passwort oder öffentlichem Schlüssel.
  • Geben Sie die PSSession ein ermöglicht Ihnen den interaktiven Einstieg in eine Remote-Sitzung und die Ausführung von Befehlen, als ob Sie sich physisch am anderen Computer befänden.
  • Aufruf-Befehl führt Befehle oder Skriptblöcke remote aus, ideal für Massenverwaltung oder automatisierte Aufgaben.

Beispiel zum Starten einer Sitzung:

New-PSSession -HostName 192.168.1.100 -UserName admin

So betreten Sie die erstellte Sitzung:

Enter-PSSession -Session $session

Sie können Dateien übertragen, Prozesse überwachen, Aufgaben automatisieren und vieles mehr – alles bequem mit PowerShell.

Konfigurieren Sie den SSH-Server unter Linux und macOS für PowerShell-Verbindungen

Sie können nicht nur Windows-Computer über PowerShell verwalten, sondern auch auf Linux- und macOS-Server zugreifen. Auf diesen Computern müssen Sie sicherstellen, dass der OpenSSH-Dienst installiert und ausgeführt wird. So funktioniert es unter Linux (z. B. Ubuntu):

sudo apt install openssh-client
sudo apt install openssh-server

So überprüfen Sie, ob es aktiv ist:

sudo systemctl status sshd

Aktivieren Sie unter macOS einfach den Fernzugriff über „Freigabe“ – „Remote-Anmeldung“ in den Systemeinstellungen.

In beiden Fällen können Sie die Datei sshd_config bearbeiten, um die Authentifizierung per Kennwort oder öffentlichem Schlüssel zuzulassen und sogar PowerShell als Standard-Shell festzulegen.

Nützliche SSH-Befehle von PowerShell

Sobald die Verbindung hergestellt ist, können zahlreiche Remote-Systembefehle ausgeführt werden. Einige nützliche Beispiele für das tägliche Management:

  • ls / dir: listet den Inhalt eines Verzeichnisses auf
  • cd: Verzeichnis ändern
  • touch / Neuware: erstellt neue Dateien
  • rm / Artikel entfernen: löscht Dateien oder Ordner
  • mv / Artikel verschieben: Dateien verschieben oder umbenennen
  • scp: überträgt Dateien zwischen Client und Server
  • useradd: Benutzer hinzufügen
  Wie erstelle ich Spiele für meine Instagram Stories? Spielbretter und Derivate

Diese Befehle ermöglichen die vollständige Verwaltung, Automatisierung und Skripterstellung für sich wiederholende Aufgaben oder komplexe Infrastrukturen.

Erweiterte Konfiguration und Anpassung von SSH-Sitzungen in PowerShell

PowerShell SSH bietet viele erweiterte Optionen, um die Erfahrung an Ihre Bedürfnisse anzupassen:

  • Bearbeiten Sie die Konfigurationsdatei in $env:ProgramData\ssh\sshd_config, um Authentifizierung, Algorithmen, Regeln und mehr zu optimieren.
  • Zugriff per Passwort oder öffentlichem Schlüssel zulassen oder blockieren je nach Sicherheitsbedarf.
  • Fügen Sie Subsysteme wie PowerShell hinzu um Remotesitzungen direkt in PowerShell mit „Subsystem powershell c:/progra~1/powershell/7/pwsh.exe -sshs -nologo“ zu starten.
  • Starten Sie die Dienste neu und passen Sie die Umgebungsvariablen an damit alles richtig funktioniert.