Während der Arbeit bin ich dazu gezwungen, Windows als Betriebsystem auf meinem Arbeitsrechner laufen zu lassen. Und das, obwohl ich fast ausschließlich Windows Linux-Server verwalte. Nun gibt es unzählige Wege, sich per SSH auf Linux-Server zu verbinden. Im Folgenden beschreibe ich meinen Weg.

Meine ersten Gehversuche habe ich (natürlich) mit PuTTY gemacht, zweifelsfrei der bekannteste SSH-Client für Windows. Ich habe jedoch schnell Einschränkungen für mich festgestellt, wie zum Beispiel fehlendes Tab-Interface (nichts ist schlimmer als 20 geöffnete Putty-Fenster in der Taskbar), kein (sinnvolles) Session-Management, umständliche Konfiguration über die GUI und standardmäßig keine Portabilität (PuTTY speichert seine Sessions in der Windows-Registry). All diese Probleme haben mich dazu veranlasst, nach Alternativen zu suchen. Hier könnt ihr euch einen Screenshot zum besseren Verständnis anschauen.

Das für mich dringenste Problem waren die fehlenden Tabs, welche ich mit Firefox lieben gelernt habe. Es gibt einige Programme, die einen Wrapper bereitstellen, um PuTTY mit Tabs zu nutzen, z.B. SuperPuTTY, PuTTY Manager oder MTPuTTY. Zum Nachvollziehen folgt hier wieder ein Screenshot.

Meine erste Wahl aus diesen Tools fiel auf MTPuTTY, einem Programm, welches meine Bedürfnisse hinsichtlich Tabs für ein paar Jahre befriedigt hat. Bis zu dem Zeitpunkt als ich als neuen Arbeitsrechner einen Laptop bekommen habe. Mit MTPuTTY gibt es einen (nachstellbaren) Fehler: bewegt man die Maus nach unten über ein PuTTY-Fenster innerhalb von MTPuTTY, verschiebt sich das PuTTY-Fenster mit, selbst wenn es im Vollbild-Modus läuft. Da MTPuTTY nicht Open Source ist und der Autor der Software nicht auf meine Kontakversuche reagiert hat, habe ich mich wieder nach einer Alternative umgesehen. Den Screenshot für einen besseren Überblick findet ihr hier.

Ich habe bereits vor ein paar Jahren cygwin genutzt, eine “Sammlung von GNU und Open Source Tools […] unter Windows. Die Installation und Konfiguration von Cygwin war zum damaligen Zeitpunkt jedoch nicht sehr nutzerfreundlich und hat viel Fummelei benötigt, daher bin ich damit nie richtig warm geworden. Auch mein letzter Versuch nach MTPuTTY, Cygwin produktiv zu nutzen war nicht sehr zufriedenstellend.

Mein nächster Versuch galt MobaXterm, einem Programm, dass sich selbst mit Features wie einem eigenen XServer, Tabs, SFTP und Portabilität bewirbt. Anfangs mochte ich MobaXterm. Aber die Menge an Features lassen lassen es aufgebläht und langsam wirken, im Vergleich zu MTPuTTY. Der Fakt, dass es nicht Open Source ist und die kostenlose Verison auf maximal zehn gespeicherte Sessions beschränkt ist sorgten dafür, dass ich es nicht weiter genutzt habe. Hier könnt ihr euch wieder einen Screenshot zum besseren Verständnis anschauen.

Während meiner weiteren Suche nach einem geeigneten Administrations-Programm bin ich zufällig über babun gestolpert, einer selbst-ernannten “Windows shell, die Du lieben wirst”. Babun basiert auf Cygwin, es bringt jedoch viele sinnvolle Erweiterungen mit, die es besser als Cygwin machen: die extrem einfache Installation (nur ein Script ausführen), ein eigener Paket-Manager (pact), automatische Updates sowie Proxy- und GIT-Support von Haus aus! Den letzten Screenshot zur Erklärung findet ihr hier.

Da man praktisch in einer echten Linux-Shell arbeitet, gibt es kein umständliches Verwalten von Sessions über einer GUI. Jetzt kann man einfach das eingebaute SSH nutzen und die Sessions in der Konfigurationsdatei ablegen, einem simplen Textdokument.

Was jettz natürlich noch gefehlt hat, sind Tabs! Zum Glück gibt es unter Windows Programme, die komplette andere Programme als Tabs in einem einheitlichen Interface darstellen. Cmder gehört zu dieser Sorte Programme. Aber Cmder kann mehr als nur Programme als Tabs darzustellen: Es ist ein voll ausgereifter Konsolen-Emulator für Windows (ich nutze jedoch hauptsächlich die Tab-Funktionaliät).

Am Ende war es die Kombination der Features aus Cmder und Babun, die dafür sorgten, dass ich es bei den Programmen blieb:

  • natives SSH
  • eine lokale Windows Bash-shell
  • Tabs!
  • Automatische Updates
  • Git-Integration
  • Einfache Session-Verwaltung

Damit man aus diesem Artikel auch noch etwas mitnehmen kann, hier eine kurze Anleitung, wie man Cmder und Babun aufsetzt:

  • Entpacke Babun und installiere es
  • Entpacke Cmder (Volle Version nutzen) und installiere es
  • Sourcecode Pro herunterladen und nutzen (optional)
  • die folgenden Konfigurationsdateien bearbeiten:
    • .babunrc
    • .bashrc
    • .minttyrc
  • Cmder konfigurieren
    • einen neuen startup-task für babun erstellen
      • Task parameters: /icon "%userprofile%\.babun\cygwin\bin\mintty.exe" /dir "%userprofile%"
      • Commands: %userprofile%\.babun\cygwin\bin\mintty.exe -
    • Unter startup > Tasks den babun-task als autostart task aktivieren, unter “Specified named task”
  • ein Farbschema wählen (optional)
    • Suche hier eins aus und konfiguriere es in der .minttyrc
  • die SSH-Konfiguration bearbeiten (in ~/.ssh/)
    • SSH-key generieren und im Verzeichnis ablegen
    • .ssh/.config anlegen und bearbeiten

Bilder