Diese Posh-SSH-Beispiele ebnen den Weg zum Linux-Management

Obwohl PowerShell jetzt ein plattformübergreifendes Projekt ist, das auf Windows-, Linux- und Mac-Systemen ausgeführt wird, benötigt das Management-Tool immer noch eine helfende Hand, um über diese verschiedenen Betriebssysteme hinweg zu arbeiten.

Immer mehr Linux-Workloads beanspruchen weiterhin mehr Infrastruktur-Workloads, die traditionell von Windows Server gehalten werden, z. B. Active Directory-Domänencontroller. Die Verwaltungstools in Windows sind jedoch in der Regel genau das, und das Spektrum der verfügbaren Tools unterstützt Linux möglicherweise nicht. Es ist einfach, PowerShell zu verwenden, um Informationen von Windows Server-Systemen zu erhalten, aber trotz der plattformübergreifenden Fähigkeiten von PowerShell war diese Arbeit bei Linux-Servern immer schwieriger. Anstatt Bash-Skripting zu erlernen, können Administratoren ihre PowerShell-Kenntnisse nutzen, um Code zu schreiben, um Informationen von Linux-Computern zu sammeln. Ein PowerShell-Modul namens Posh-SSH hilft, diese administrative Kluft mit einer Reihe von Cmdlets zu überbrücken, um zusätzliche Funktionen bereitzustellen mit Linux-Systemen arbeiten.

Installieren Sie das Posh-SSH-Modul

Installieren Sie zum Starten das Modul unter Linux mit folgendem Befehl mit Administratorrechten:

Install-Module -Name Posh-SSH

Abhängig von der Konfiguration der Workstation ist möglicherweise der folgende Befehl erforderlich, der die Ausführungsrichtlinie ändert, wenn die Befehle nicht wie erwartet ausgegeben werden:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force -Verbose

Das Posh-SSH-Modul enthält mehrere Funktionen, die Linux-Administratoren vertraut sind, z. B. die Möglichkeit, Befehle über eine Secure Shell (SSH) Sitzung. Um eine vollständige Liste der Posh-SSH-Befehle zu erhalten, verwenden Sie Folgendes in PowerShell:

Get-Command -Module Posh-SSH

Um Befehle für einen Linux-Server über Posh-SSH auszuführen, muss der Administrator zwei Dinge tun: eine Verbindung zu einem SSH-fähigen Linux-Server herstellen und dann das erforderliche Posh-SSH-Modul aufrufen.
Danach mit Invoke-SSHCommand gibt die Ergebnisse des Befehls in eine Variable zurück. Dies bietet Administratoren eine nützliche Möglichkeit, Informationen über Dateien, deren Inhalt oder sogar laufende Prozesse zu sammeln.
Um diese Funktionen nutzen zu können, muss OpenSSH auf dem betreffenden Server ausgeführt werden. Testen Sie dies, indem Sie PuTTY oder ein ähnliches Tool verwenden, um eine Verbindung zu Port 22 herzustellen.

Verbinden Sie sich mit dem Linux-Computer

Stellen Sie zunächst eine Sitzung mit einer Linux-VM mit installiertem OpenSSH her. In seiner Rohform lautet der Befehl wie folgt:

$setsession = New-SSHSession

Dies fordert den Administrator auf, mehrere Felder auszufüllen. Wenn es Zeit für die Automatisierung ist, kann ein Skript die entsprechenden Eigenschaften ausfüllen. Ersetzen Sie die Computername und Get-Credential-Benutzername für Ihre eigenen Setup-Anforderungen:

$setsession = New-SSHSession -ComputerName "192.168.83.128" -Credential (Get-Credential sysadmin)

Wenn der Befehl zum ersten Mal eine Verbindung zum Linux-Server herstellt, fordert er auf, den Fingerabdruck des Hosts zu akzeptieren. Drücken Sie UND es zu genehmigen.

mit Linux-VM verbinden
Stellen Sie über Windows PowerShell eine Verbindung zu einer Linux-Sitzung her.

Eine andere Möglichkeit ist SSH-Schlüssel verwenden die als private Schlüsseldatei übergeben werden. Die Holen Sie sich Hilfe New-SSHSession Befehl zeigt die Auswahl an.
Dieses Tutorial verwendet die Zugangsdaten abrufen Funktion der Einfachheit halber. Um die Anmeldeinformationen in einem Skript anzugeben, ersetzen Sie das Zugangsdaten abrufen Portion.

Das System abfragen

Verwenden Sie für eine verbundene Sitzung Aufruf-Sitzung mit dem Befehl in einfachen Anführungszeichen wie unten gezeigt:

$Results = Invoke-SSHCommand -SessionId 0 -Command 'uname -a'

Dies gibt die vollständigen Details der uname -a Befehl, als ob er in der Konsole eingegeben worden wäre; uname -a ist der Linux-Befehl zur Ausgabe aller Systeminformationen. Posh-SSH unterstützt mehrere offene Sitzungen gleichzeitig; einfach ersetzen Session-ID Variable für die entsprechende Sitzung. Um die aktiven Sitzungen anzuzeigen, verwenden Sie die Get-SSHSession Befehl.

Linux-Serverbefehl
Führen Sie Befehle auf einem Linux-Server über die Posh-SSH PowerShell-Cmdlets aus.

Die zurückgegebenen Daten kommen zurück als Objekt; Um die gewünschte Ausgabe zu erhalten, verwenden Sie die Select-Objekt Cmdlet und die Ausgabe Eigentum:

$Results|Select-Object Output

Obwohl einfach, zeigen diese Posh-SSH-Beispiele, wie ein fortgeschritteneres Skript Informationen über Linux-Hosts sammeln kann, um einen Bericht mit einer Vielzahl von Daten zu erstellen, einschließlich Speichernutzung und Laufende Prozesse.

Verwenden Sie Posh-SSH, um Dateien auf Linux-Server hochzuladen

Administratoren können Posh-SSH für wichtige Infrastrukturjobs verwenden, z. B. das Hochladen von Dateien auf eine Gruppe von Linux-Servern, um Updates vorab bereitzustellen, anstatt jede Datei manuell hochzuladen.
Das Posh-SSH-Modul unterstützt mehrere Dateiübertragungsoptionen, einschließlich SSH FTP und Secure Copy Protocol (SCP). Das folgende Posh-SSH-Beispiel lädt eine Datei mit dem SCP-Befehl hoch und erfordert nur die OpenSSH-Serverfunktionalität.

Set-SCPItem -computername 192.168.83.128 -Credential  (Get-Credential sysadmin) .update.zip – Destination /tmp/

Das Posh-SSH-Modul hilft, die Reichweite von PowerShell auf die Linux-Arena auszudehnen. Windows-Administratoren, die neu in der Verwaltung dieser Systeme sind, müssen einige der grundlegenden Unterschiede zwischen den beiden Betriebssystemen kennenlernen, z.
Weitere Informationen zum Posh-SSH-Modul finden Sie unter sein Repository auf GitHub.

Similar Posts

Leave a Reply