Cluster SSH

Auch Cluster SSH [2] bietet die Möglichkeit, auf mehreren Rechnern gleichzeitig zu arbeiten. Dazu rufen Sie einfach cssh host1 host2 ... auf. Es öffnet sich ein kleines Eingabefenster (Abbildung 2), in dessen Eingabezeile Sie den gewünschten Befehl absetzen.

Abbildung 2: Das Eingabefenster von Cluster SSH.

Zusätzlich öffnet sich für jeden Rechner noch ein Terminalfenster. Die Eingabe aus dem Eingabefenster überträgt Cssh Zeichen für Zeichen auf die einzelnen Gegenstellen – auch wenn Sie sich vertippt haben und mit [Rückschritt] den Fehler korrigieren. Das sehen Sie auch auf den einzelnen Terminals und können dort nach dem Drücken der Eingabetaste die Ausgabe der Befehle auf den einzelnen Hosts verfolgen.

Um auf einem Rechner einen gesonderten Befehl auszuführen, verschieben Sie den Fokus auf eines der Terminals. Dort modifizieren Sie gegebenenfalls auch einen Befehl, bevor Sie im Cssh-Fenster [Eingabe] drücken und damit den Befehl auf allen Rechnern ausführen.

Bei Bedarf definieren Sie hier ähnlich wie bei Pssh die Rechner des Clusters in einer Konfigurationsdatei (/etc/clusters oder ~/.clusterssh/clusters), indem Sie einen Namen (im Beispiel aus Listing 4 webserver) angeben und dann die Rechner aufführen, die dieser Klasse angehören. Beim Aufruf von Cssh geben Sie dann diese Klasse anstelle der einzelnen Rechnernamen an [3].

Listing 4

webserver    root@www1.example.com root@www2.example.com root@www3.example.com

Das Cluster-SSH-Paket bringt neben cssh auch noch crsh für RSH und ctel für Telnet mit. Beide Protokolle bieten im Gegensatz zu SSH allerdings keine Verschlüsselung und erscheinen daher aus heutiger Sicht irrelevant.

Einschränkungen

Bei Logins ohne Passwort sollten Sie sich Gedanken darüber machen, die Möglichkeiten der Befehlsausführung aus Sicherheitsgründen auf das unbedingt Benötigte einzuschränken – etwa auf das Triggern eines Backups, die Anzeige der aktuell laufenden Prozesse oder einen Neustart des Servers. SSH ermöglicht solche Einschränkungen über sogenannte Forced Commands und führt dann beim Login immer ein bestimmtes Kommando aus.

Wenn Sie den Schlüssel auf den Server kopieren, landet er dort in der Datei ~/.ssh/authorized_keys. Die entsprechende Zeile fängt mit ssh-rsa an (RSA steht für das verwendete Verschlüsselungsverfahren), dann folgen ein wilder Zeichensalat (Ihr Public Key) und ein optionaler Kommentar – geben Sie nichts anderes an, steht dort das User@Host des Rechners, wo Sie den Key erzeugt haben. Am Anfang der Zeile dürfen Sie bei Bedarf noch ein Forced Command eintragen:

command="ps -ef" ssh-rsa AAB3NzaC1yc..

In diesem Beispiel startet beim Einloggen mit dem angegebenen Key immer der Befehl ps -ef (Anzeige der laufenden Prozesse), auch wenn Sie Ssh ein anderes Kommando mitgegeben haben. Stattdessen könnten Sie auch ein Backup anstoßen, einen Dienst neu starten oder den Server rebooten. Da Sie beliebig viele Schlüssel generieren können, lässt sich für jede Aufgabe ein eigener Key samt zugehörigem Forced Command verwenden.

Das Ganze lässt sich noch flexibler gestalten. SSH setzt die Variable $SSH_ORIGINAL_COMMAND auf das Kommando, das Sie angegeben haben – auf diesem Weg lassen sich Kommandos "whitelisten". Dazu verwenden Sie ein Shellskript wie in Listing 5, das Sie auf dem Server speichern und als Forced Command angeben. Dann lässt sich mit ssh -i ~/.ssh/mysshkey server.example.com df der freie Plattenspeicher abfragen, man kann mit ... ps die laufenden Prozesse anzeigen und mit .. free den freien Hauptspeicher ausgeben – und sonst nichts.

Listing 5

#!/bin/sh
case $SSH_ORIGINAL_COMMAND in
  "df")
    df -h
    ;;
  "ps")
    ps -ef
    ;;
  "free")
    free
    ;;
  *)
    echo "Illegales Kommando."
    exit 1
    ;;
esac

Tücken bei Forced Commands

Sie sollten wie ein Schießhund darauf aufpassen, dass ein Forced Command auch tatsächlich nur das macht, was Sie gestatten möchten. Erlauben Sie etwa einem hypothetischen "FTP-Administrator", mit dem Editor Vi die Konfigurationsdatei des Vsftpd-Servers zu ändern (command="vi /etc/vsftpd.conf"), reißen Sie damit Tür und Tor auf: So kann der FTP-Admin dann beliebige andere Dateien einlesen (:r /etc/passwd) und je nach Rechten auch schreiben. Noch schlimmer: Vi erlaubt es, mit dem Kommando :!Befehl beliebige andere Befehle zu starten – da können Sie sich das Forced Command auch gleich sparen.

Das ist schon mal ganz gut, lässt sich aber eventuell doch missbrauchen (siehe Kasten "Tücken bei Forced Commands"). Als weitere Einschränkung können Sie mittels from="..." die Liste der Rechner einschränken, von denen aus man sich mit dem Schlüssel anmelden darf:

from="*.example.org,!chef.example.org" ssh-rsa ...

Damit kann man sich von jedem Rechner unter example.org anmelden, außer – dank der Negation durch das Ausrufezeichen – vom Rechner des Chefs aus.

Zu guter Letzt lassen sich diverse Fähigkeiten von SSH abschalten. Das Protokoll bietet ja tolle Möglichkeiten, wie unter anderem X11- und Port-Forwarding. Diese Schmankerl sollten Sie deaktivieren, wenn sie nicht unbedingt benötigt werden, da sonst ein Schelm beispielsweise durch Port-Forwarding Dienste nach außen erreichbar machen kann, von denen Sie das nicht wollen. Die entsprechenden Optionen fasst die Tabelle "Abschalten von SSH-Funktionen" kurz zusammen, genauere Informationen finden Sie in der Manpage des SSH-Daemons (man sshd).

Abschalten von SSH-Funktionen

Option Funktion
no-pty Verhindert das Anlegen eines Pseudoterminals.
no-port-forwarding Verhindert das Port-Forwarding durch SSH.
no-x11-forwarding Verhindert das Weiterleiten von grafischen Programmen vom entfernten Rechner.
no-agent-forwarding Verhindert das Weiterleiten von Informationen des SSH-Agenten.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • The Answer Girl
    Wer hat sie nicht schon mehr als genug gehört, die gutgemeinte Litanei vom Anlegen eines Backups. In der Firma oder an der Uni mag man dieses leidige Thema mit einiger Berechtigung auf die dortigen Systemadministrator(inn)en abwälzen, doch was ist mit dem Datenbestand zu Hause?
  • Shell-Zugriff per Webbrowser
    Eine Shell im Browser? PHPshell und Shell in a Box machen es möglich und erleichtern damit das Verwalten von Webservern auch ohne SSH-Zugang – beispielsweise aus dem nächsten Internet-Café.
  • Backups mit Rsnapshot
    Mit Rsnapshot legen Sie auf einfache Art sowohl lokale Backups als auch Sicherungen auf entfernten Maschinen an. Das Rotationsprinzip des Tools gibt Ihnen dabei schnellen Zugriff auf ältere Dateiversionen.
  • Datensicherung mit Shell-Kommandos
    Für die Datensicherung können Sie komfortable Backupprogramme verwenden – doch die müssen Sie erst konfigurieren. Wenn es schnell gehen soll, reicht ein einziger Befehl in der Shell.
  • Nachladbare Komponenten und UEFI-Boot

    Die Rettungsdistribution System Rescue CD bringt in Version 3.0.0 neben Software-Updates auch neue Funktionen.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...