Open Source im professionellen Einsatz
Linux-Magazin Microsoft/
© Lars Kastilan, 123RF.com

© Lars Kastilan, 123RF.com

Aufgaben automatisieren mit SSH, Zenity, Yad, Kdialog, Putty, Winscp und Rex

Selbst gestrickt

Mit Mausklicks ein Administrationsskript auf dem Linux-Server zu starten klingt komplizierter, als es ist. Wer so für seine Desktop-Anwender ansprechende, interaktive Dialoge stricken will, braucht nur die SSH, eines der kleinen Hilfsprogramme und ein wenig Bash-Know-how.

781

Die verstopfte Druckerwarteschlange löschen oder nach Abschluss jedes wichtigen Projekts sofort ein vollständiges Backup ins SAN schreiben? All das sind Aufgaben, die den Admin von wichtigerer Arbeit abhalten. Schön, wenn er es seinen Anwendern erlauben kann, derart simple, sich wiederholende administrative Arbeiten selbst zu erledigen. Damit das auch der unerfahrenste User sicher bewerkstelligen kann, hinterlegt ihm der Admin im Idealfall ein Icon auf dem Desktop. Das startet per Mausklick ein selbst gestricktes Programm mit einem einfachen GUI und triggert via SSH auf dem Linux-Server Aktionen.

Hat der Admin in seinem Nähkästchen die SSH, Sudo und eines der im Folgenden beschriebenen Dialogsysteme Zenity, Yad, Kdialog oder Rex, dann muss sich der Clientanwender nicht mit Linux-Konzepten oder Befehlszeilenkonventionen auseinandersetzen. Für Windows-Clients gibt's Putty oder Win SCP – oder die Powershell.

Schlüsselmeister mit Hilfsagenten

Damit das Szenario funktioniert, braucht der instruierte Anwender auf seinem Client einen SSH-Key, der als Zugangsberechtigung für den Linux-Server dient. Zwar ginge das auch mit der herkömmlichen Login-Passwort-Kombination, doch die unbeliebte Tipparbeit lässt sich sparen. Ein lokales Schlüsselpaar erzeugt »ssh-keygen« , das sofort nach einem Speicherort für die Schlüssel sowie einer Key-Passphrase fragt. Sicherheitsbewusste Admins vergeben hier ein Passwort für den Zugriff auf den Schlüssel, denken aber auch an den Benutzerkomfort (siehe Kasten "Sicherer Agent").

Sicherer Agent

Die von »ssh-keygen« verlangte Passphrase sichert die Schlüsseldateien ab. Wenn »ssh« die Verbindung aufbaut, fragt sie die Passphrase ab, öffnet im Erfolgsfall die Schlüsseldateien und nutzt diese zur Anmeldung.

Wer auf die Passphrase verzichtet, riskiert, dass sich jeder, der in den Besitz der Schlüsseldatei gelangt, ohne Passwort am entfernten Rechner anmelden kann. Der Admin muss – je nach Policy im Unternehmen – selbst entscheiden, ob der für den Anwender bequemere, aber unsichere Weg ohne Passwort ausreicht. Wer die Eingabe einer Passphrase verlangt, muss dies auch in den Skripten berücksichtigen.

Glücklicherweise gibt es den »ssh-agent« . Er läuft als Daemon im Hintergrund auf Linux-Systemen und merkt sich ein oder mehrere Passwörter. Meldet sich der Benutzer per SSH irgendwo an, dann übernimmt der »ssh-agent« das Übermitteln der Passphrase. So einen Agenten zu benutzen ist kinderleicht: Erst einen Schlüssel über »ssh-keygen« erzeugen, eine Passphrase angeben und danach »ssh-agent -t 60m« starten. Der Parameter »-t 60m« macht den Agenten bewusst senil: Damit vergisst er jede ihm beigebrachte Passphrase nach einer Stunde. »ssh-add« übergibt ihm gezielt eine Passphrase, die Anmeldung am SSH-Server klappt innerhalb der Zeitspanne sicher und trotzdem ohne Passwort.

Jetzt liegen unter »~/.ssh« ein privater und ein öffentlicher Schlüssel, der zweite gelangt mit »ssh-copy-id Benutzername@Server« auf den SSH-Server. Anschließend wandert der öffentliche Schlüssel auf den entfernten Computer »example.com« und landet dort in der Datei »~/.ssh/authorized_keys« . Jetzt ist es Zeit für einen Test mit »ssh Benutzername@Server« , der ohne Passwortabfrage klappen sollte (Abbildung 1).

Abbildung 1: SSH-Login mit Key: Nach nur zwei Befehlen ist für das Einloggen auf dem SSH-Server (hier mit der IP-Adresse 192.168.2.12) kein Passwort mehr nötig.

Den auf dem entfernten Rechner auszuführenden Befehl hängt der Admin einfach an das SSH-Kommando an:

ssh tim@example.com "uptime -V"

Die Anführungszeichen helfen der Bash, »-V« oder auch »--version« nicht als Parameter für die SSH selbst misszuverstehen. Der Befehl liefert die Versionsnummer des Programms »uptime« auf dem entfernten Rechner (Abbildung 2).Nach dem gleichen Prinzip lassen sich natürlich auch Skripte auf dem Server zünden – etwa eines, das nach dem Projektabschluss ein außerplanmäßiges Vollbackup anstößt.

Abbildung 2: Unter Open Suse 12.2, das hier auf dem entfernten Rechner läuft, zeigt uptime die Versionsnummer mit dem Parameter --version.

Remote-Admin für einzelne Jobs

Wer den Benutzer auf dem entfernten Computer in die Liste der privilegierten User in »/etc/sudoers« aufnimmt, erlaubt ihm auch Aufgaben des Admins zu erledigen, beispielsweise ein Backup mit Rootrechten durchzuführen:

ssh tim@example.com "sudo /sbin/backup.sh"

Die Beispiele bisher konzentrierten sich auf die Shell, aber es geht auch noch deutlich komfortabler. Bei mehreren Aufgaben müsste sich der Anwender die Namen der für ihn bereitgestellten Skripte und Programme merken – das ist in vielen Fällen illusorisch. Netter ist es, ihm ein Fenster mit einem Auswahldialog zu präsentieren, aus dem er die aktuell gewünschte Aufgabe aussucht. Für genau solche Zwecke gibt es die Programme Zenity, Yad und Kdialog. Sie öffnen jeweils einen Listendialog, den der Admin in gewissen Grenzen selbst gestalten kann.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

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

Linux-Magazin kaufen

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

Deutschland

Ähnliche Artikel

  • Das Untoten-Komplott

    Wer kann am längsten? Den Wettbewerb um bootfreie Standhaftigkeit gewannen Linux-Systeme früher locker. Heute helfen Uptime-Statistiken dem Admin beim Monitoring und Finden vertrackter Fehler.

  • Tooltipps

    Im Kurztest: Devices in LAN 0.4, Gxmessage 3.4.3, Site Monitoring 2.1.6, Bleachbit 1.6, Fehashmac 1.4.2, SSH Guard 1.5

  • Update für SSH-Client: Putty 0.6.1 kann Single-Sign-on

    Nach vier Jahren haben die Entwickler des SSH-Clients Putty eine neue Version ihrer Software veröffentlicht.

     

  • Bitparade

    Wer Logdateien überwachen möchte, könnte zu einem dicken Hund wie Nagios oder Icinga greifen. Doch auch leichtgewichtige Alternativen wittern Bedrohungen, lassen sich aber wesentlich flotter einrichten. Das Linux-Magazin geht mit fünf dieser kleinen Wachhunde auf den Trainingsparcours.

  • Fcron, eine flexible Cron-Alternative

    Flexible Zeitsteuerung für allerhand Admin-Jobs: Fcron beherrscht alles, was der klassische Cron-Daemon kann, und bietet dazu noch einige nützliche Extras.

comments powered by Disqus

Microsoft TechNet News