SSH und SFTP mit der PowerShell

Wer gerne die Windows PowerShell nutzt und damit auch Linux Systeme administrieren möchte, der kann seit dem Windows Management Framework 5.0 direkt in der PowerShell mit SSH und SFTP arbeiten. Es muss nur das PowerShell Modul Posh-SSH installiert werden und dann kann es auch schon losgehen. In diesem Beitrag gibt es jeweils ein kleines Beispiel wie die Befehle für SSH und SFTP mit der PowerShell genutzt werden können.SSH und SFTP mit der PowerShell - Posh-SSH Modul

Installation Posh-SSH Modul

Mit Windows 10 und Windows Server 2016 kann direkt mit der Installation gestartet werden, denn hier ist das Windows Management Framework 5.0 (Download Link) bereits vorhanden. Mit dem folgenden Befehl kann das Posh-SSH Modul dann installiert werden. Auf älteren Windows Betriebssystemen (siehe „Supported Operating System“ im Download Link) muss vorab noch das Windows Management Framework aktualisiert werden.

Für die Installation wird einmalig eine Internetverbindung benötigt. Die erste Meldung, ob NuGet installiert werden darf, kann mit Enter bestätigt werden. Da das benötigte NuGet aus einem nicht bekannten Repository geladen wird, muss die zweite Warnung mit Y bestätigt werden.SSH und SFTP mit der PowerShell - Install-Module Posh-SSH

Befehle

Wer sich einen Überblick über die Posh-SSH Funktionen und Cmdlets machen möchte, kann sich alle über den folgenden Befehl ausgegeben lassen.

Die Liste der Funktionen und Cmdlets ist sehr umfangreich.

Functions Skript

Im folgendem Skript (Functions-SSH.ps1) sind die Funktionen für das SSH und SFTP Skript gespeichert.

Die erste Funktion (CreatePasswordFile) speichert das Passwort (verschlüsselt über DPAPI) in einer Datei ab. Pro ComputerName Variable wird geprüft, ob bereits ein „Password File“ vorhanden ist. Wenn noch keins vorhanden ist, wird das Passwort abgefragt und im „PasswordFile“ abgelegt. Wurde das Kennwort geändert oder bei der Erstellung falsch eingegeben, muss das „Password File“ per Hand gelöscht werden.

In der zweiten Funktion (CreateCredentialObject) wird das „Password File“ ausgelesen und das darin enthaltene Passwort entschlüsselt. Aus dem Passwort und der Username Variable wird dann ein Credential Object erstellt, welches für den Verbindungsaufbau im SSH oder SFTP Skript verwendet wird.

SSH Skript

Das SSH Skript liest die Belegung der Festplatte aus und würde, wenn man das # Zeichen vor Invoke-SSHCommand entfernt, einen Neustart des Systems durchführen.

SFTP Skript

Das Skript gibt den Inhalt vom Apache Error Log aus, kopiert das Messages Log nach C:\temp, kopiert die Datei text.txt (Datei muss existieren) aus c:\temp ins /usr/src Verzeichnis und gibt dann den Inhalt von /usr/src aus.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

code