Allgemein, DevOps, Tools

Linux-Server von einer Windows-Workstation aus administrieren

Das Problem

Unsere Firmenrichtlinien zwingen mich dazu, Windows auf meiner Workstation zu nutzen, obwohl ich zu 99% Linux-Server administriere. Nun gibt es dutzende verschiedene Möglichkeiten, sich per SSH auf die Server zu verbinden und sie so zu verwalten.

Der Weg

Angefangen habe ich (natürlich) mit PuTTY, dem wohl bekanntesten Tool für diese Aufgabe. Schnell sind mir diverse Limitierungen begegnet, wie zum Beispiel fehlende Tabs (nichts ist schlimmer als 20 Putty-Fenster in der Taskleiste zu haben), fehlendes sinnvolles Session-Management, die umständliche Konfiguration über die GUI und die fehlende Portierbarkeit (standardmäßig werden Sessions in der Registry gespeichert). All diese und noch weitere Probleme haben mich nach Alternativen suchen lassen.

Putty

Putty

Das für mich dringendste “Problem”, welches es zu beseitigen galt, waren die fehlenden Tabs, die ich unter Firefox lieben gelernt habe. Es gibt verschiedene Programme, die einen Wrapper für PuTTY bieten und es in Tabs verpacken: SuperPuTTY, PuTTY Manager oder MTPuTTY.

mtputty

mtputty

Meine damalige Wahl fiel auf MTPuTTY, womit ich auch jahrelang zufrieden war. Bis ich auf einen Laptop als mein Hauptarbeitsgerät wechselte. Dort gab es den (reproduzierbaren) Bug, dass einzelne PuTTY-Fenster an den unteren Rand des Bildschirms gezogen wurden, wenn man mit der Maus von oben nach unten über das Fenster fuhr. Da MTPuTTY nicht quelloffen verfügbar ist und der Autor nicht auf meine Kontaktversuche reagiert hat, musste ich wohl oder übel nach einer neuen Alternative Ausschau halten.

Ich hatte bereits vor meinen Erfahrungen mit PuTTY cygwin genutzt. Cygwin ist eine Sammlung von Linux-Tools die auf Windows portiert wurden. Die damalige Installation und Konfiguration war aber eher benutzerunfreundlich, so dass ich damit nie warm wurde. Auch mein letzter Versuch nach MTPuTTY, cygwin effektiv zu nutzen, war nicht von Erfolg gekrönt.

Cygwin

Cygwin

Der nächste Versuch galt dann MobaXterm, einem Programm welches mit Features wie einem eingebauten XServer, Tabs, SFTP und Portabilität wirbt. MobaXterm gefiel mir anfangs auch sehr gut. Der Funktionsumfang wurde ihm dann vermutlich zum Verhängnis, da sich MobaXterm im Gegensatz zu anderen Programmen sehr langsam und schleppend anfühlte. Auch, dass es nicht Open-Source zur Verfügung steht und die kostenlose Version nur maximal 10 gespeicherte Sessions zulässt, gaben dem Programm keine Pluspunkte.

MobaXterm

MobaXterm

Das Ziel

Bei meiner weiteren Suche nach einem geeigneten Administrationstool stieß ich irgendwann zufällig auf babun, nach eigener Aussage eine “Windows-Shell, die du lieben wirst”. Babun basiert wie mobaxterm auch auf cygwin. Es bringt jedoch von Hause aus einige Annehmlichkeiten mit, die es cygwin überlegen machen, unter anderem die unkomplizierte Installation (nur ein Script ausführen!), ein eigener Paket-Manager, automatische Updates sowie integrierter Proxy- und Git-Support.

Eine Windows-Shell, die du lieben wirst!

Da man praktisch auf einer Linux-Shell arbeitet, fiel auch das umständliche Session-Handling weg; jetzt konnte ich einfach in der ssh-Konfiguration Server deklarieren und mich mit nativem SSH zu ihnen verbinden!

Was am Gesamtbild mit babun gefehlt hat, sind (natürlich) die Tabs! Glücklicherweise gibt es inzwischen auch Programme unter Windows, die es ermöglichen, andere Programme als Tabs darzustellen. Zu diesen gehört cmder.

cmder with babun

cmder mit babun

Cmder kann laut eigener Beschreibung mehr als nur Programme in Tabs darzustellen; es ist ein Konsolenemulator für Windows, der sich von anderen derartigen Programm abhebt. Ich jedoch nutze (fast) nur die Tab-Funktionalität.

Das Zusammenspiel aus cmder und babun bringt mir so folgende Vorteile:

  • natives SSH
  • lokale Windows-Bash-Shell
  • Tabs
  • Automatische Updates
  • Git-Integration
  • einfaches Session-Handling
  • Public-Key-Authentifizierung aus Keepass

Die Umsetzung

Für die Neugierigen unter uns, im Folgenden die Kurzanleitung zur Einrichtung und Konfiguration vom cmder und babun.

  • Babun entpacken
  • Cmder entpacken (Full-Version)
  • Sourcecode Pro Schriftart installieren (optional)
  • Konfigurationsdateien anpassen (nach ~ kopieren)
    • .babunrc (Proxy- und locale-Einstellung)
    • .bashrc (Bash-Konfiguration)
    • .minttyrc (Aussehen der Shell inklusive Farben, siehe unten)
  • Cmder anpassen
    • neuen Startup-Task für babun anlegen
      • Task parameters: /icon "%userprofile%\.babun\cygwin\bin\mintty.exe" /dir "%userprofile%"
      • Commands: %userprofile%\.babun\cygwin\bin\mintty.exe -
    • Unter Startup den babun-Task als Autostart-Task aktivieren, unter “Specified named task”
  • Farbschema aussuchen (optional)
    • Hier eins aussuchen und in der .minttyrc konfigurieren
  • SSH-Konfiguration anpassen (nach ~/.ssh/ ablegen)
    • SSH-Key generieren und hier ablegen
    • .ssh/.config anlegen und anpassen
  • Keepass anpassen
    • Keeagent installieren (Beta-Version nutzen!)
    • Im Keepass über Tools -> Keeagent den SSH-Key hinterlegen
    • Im Keepass über Options -> Keeagent einstellen:
      • Agent Mode: Auto
      • Create Cygwin compatible socket file: “C:\Users\ADUSER.ssh\sock”

Beitragsbilder

 

4 comments

  1. Hallo Sebastian,

    vielen Dank für Deinen Beitrag.
    Die Ausgangslage und der werkzeugtechnische Werdegang würde sich bei mir genauso lesen, wobei ich inzwischen bei folgendem Setup auf meinem Windows-Desktop angekommen bin:

    – Royal TS wenn ich nativ aus Windows heraus agieren möchte oder
    – VirtualBox mit entsprechender Linux-VM; um so mit “echtem” Linux-Client zu agieren

    In der Linux-VM habe ich auch entsprechender Tools wie z.B. (R)?ex implementiert, um bei Bedarf z.B. schnell mal Operationen über mehrere Zielsysteme gleichzeitig durchzuführen. Die dabei eingesetzten “Rexfiles” teile ich mit Kollegen im Team-eigenen GitLab-Repo.

    Den Stack aus Babun und Cmdr werde ich für mich jedoch auch mal ausprobieren und danke auch für den Tipp dem KeeAgent. Ich kannte KeePass und der pagent bisher nur autark zueinander.

    • Sebastian

      Sebastian

      Hallo Enrico,

      VirtualBox habe ich natürlich selbst auch öfter ausprobiert, konnte mich aber nie mit anfreunden. Zum einen kann ich damit schwer auf lokale Dateien zugreifen und muss alles wichtige auf der Box erreichbar machen, zum Anderen ist die Netzwerkkommunikation in das Firmennetz sowie nach draußen immer ein Graus. Auch der zwangsweise notwendige Wechsel aus der Box ins Windows fand ich immer sehr unperformant und nervraubend.

      Aber von RoyalTS hab ich bisher noch nichts gehört und schau es mir gleich mal an, danke! 🙂

Schreibe einen Kommentar

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