ADMIN-Tipp: Account-Management für SSH

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Wer des vielen Tippens von Hostnamen beim Remote Login müde ist, kann sich einem kleinen Hilfsprogramm einige Anschläge sparen.

Wieviele Hunderttausend von Zeichen kommen wohl zusammen, wenn man die immer und immer wieder getippten täglich gleichen Befehle addiert? Wer sich per SSH-Keys authentifiziert spart sich durch den Wegfall eines Passworts schon einiges an ermüdender Tipparbeit, dann bleibt aber immer noch die Eingabe der ständig gleichen Hostnamen. Mit dem Bash-Completion-Paket kann man die Autovervollständigung von Hostnamen einschalten, die in der Datei "known_hosts" enthalten sind. Allerdings fehlt dann immer noch der Username, wenn er nicht zufällig identisch mit dem lokalen ist. 

Das Python-Paket " Storm " bietet eine einfache Lösung für das Management von SSH-Accounts. Installiert wird es mit einem Aufruf von "pip install stormssh" oder "easy_install stormssh" oder aus dem Quellcode. Im letzten Fall muss man sich aber noch manuell um die Installation der Abhängigkeiten kümmern. Ist die Software installiert, fügt der folgende Befehl eine neue SSH-Verbindung hinzu:

storm add webserver www23.meinedomain.net

Die Verbindung lässt sich wie gewohnt mit SSH herstellen, nur eben mit der hinterlegten Abkürzung, also "ssh webserver". Das klappt, weil Storm die Hosts in die Datei ".ssh/config" einträgt. Editieren lässt sich ein Eintrag mit "storm edit", löschen mit "storm delete". "storm list" gibt eine List der eingetragenen Hosts aus. Zusätzlich zum Hostnamen kann man davor noch einen Usernamen, danach mit einem Doppelpunkt getrennt, also etwa "ofrommel@www.admin-magazin.de:8021". 

Leider gibt es bei der Installation von Storm ein paar Probleme, weil der Entwickler des von Storm verwendeten "manage.py" gerne an seiner Software herumdoktert. So heißt das Modul nun nicht länger "manage", sondern "manager", also muss die entsprechende Zeile im "storm"-Skript so aussehen:

from manager import Manager

Außerdem verwendet er in der Datei __init__.py seines Pakets eine so genannte Dictionary Comprehension, die von Python 3 auf Python 2.7 rückportiert wurde. Als Ergebnis davon funktioniert "manage.py" nicht mehr mit Python 2.6. Um es dennoch damit zum Laufen zu bekommen, muss man die betreffende Zeile 192 ("return {key: strip_quotes...") durch eine kleine Schleife ersetzen:

x = {}
for key, value in founds:
   x[key] = strip_quotes(value)
return x
18.06.2013
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023