Server Management mit Termix

Wer viel und regelmäßig auf Servern rumturnt, kennt das Problem mit der Verwaltung der Zugänge. Mit welchem User greife ich auf welchen Server zu? Welcher SSH Schlüssel wird für den speziellen User oder Server benötigt? Je mehr Server hinzukommen, desto komplexer kann es werden. Natürlich lässt sich über die „~/.ssh/config“ schon einiges erledigen. Allerdings wird es damit auch nicht wirklich übersichtlich und geräteübergreifend funktioniert es auch nicht. SSH Clients gibt es einige für die unterschiedlichen Betriebsysteme. Der Funktionsumfang unterscheidet sich hier unter Umständen sehr stark. Plattformübergreifendes Arbeiten ist oft ein Merkmal, welches vergeblich gesucht wird. Hier stellt die Open Source Lösung Termix eine gute Möglichkeit zur Verfügung, diese Probleme direkt zu umgehen.

Termix läuft als Serverkomponente zum Beispiel als Docker Container. Eine klassische Installation sowie ein Proxmox LXC Container sind ebenso möglich. Für den Einsatz mit Docker ist die Bereitstellung bereits gut dokumentiert und sehr schnell umgesetzt.

Da ich in meinem Homelab ausschließlich Linux Server im Einsatz habe, benötige ich den Teil mit Guacamole nicht und habe den Container „guacd“ entsprechend weggelassen.

Um die Kommunikation zu verschlüsseln, läuft mein Termix Container hinter einem Traefik Reverse Proxy. Meine docker-compose.yml sieht dafür wie folgt aus:

networks:
  default:
    driver: bridge
  traefik_proxy:
    external: true

volumes:
  termix-data: {}

services:
  termix:
    image: ghcr.io/lukegus/termix:latest
    container_name: termix
    restart: unless-stopped
    volumes:
      - termix-data:/app/data
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.termix.rule=Host(`termix.foo.bar`)"
      - "traefik.http.routers.termix.middlewares=addtrailingslash@file, default-headers@file"
      - "traefik.http.services.termix.loadbalancer.server.port=8080"
networks:
  - default
  - traefik_proxy

Sobald der Container gestartet wurde, kann Termix über die definierte URL aufgerufen werden. Nachdem der Benutzer angelegt wurde, können auch schon die eigenen Hosts angelegt werden. Beim Einsatz von SSH Schlüsseln können diese auch als Anmeldedaten hinterlegt und dann bei den einzelnen Hosts verwendet werden. Somit ist eine redundante Eingabe von Anmeldedaten auf Hostebene nicht erforderlich.

Termix übericht der Hosts

Die einzelnen Hosts können auch mit Tags versehen werden, um die Suche bei vielen Objekten zu verbessern. Somit lassen sich beispielsweise alle Hosts anzeigen, die etwas mit Netzwerk oder Kubernetes zu tun haben. Ebenso lassen sich Hosts in beliebige Ordner strukturieren. Dies kann für unterschiedliche Projekte sehr hilfreich sein.

Die SSH Verbindung auf einen Host lässt sich jetzt entweder direkt im Browser oder über eine passende Termix App herstellen.

Termix SSH Terminal


Neben der reinen SSH Verwaltung kann über Termix auch per SFTP auf die Server zugegriffen werden, um direkt Daten auszutauschen.

Termix SFTP Filetransfer

Eine weitere, sehr nette Funktion sind die „Code Snippets“. Damit lassen sich oft auszuführende Befehle – die auch durchaus mal etwas länger sein können – hinterlegen und bei Bedarf per Mausklick ausführen.

Gerade die plattformübergreifende Funktionsweise per Browser ist für mich sehr praktisch, da ich somit immer und überall meine benötigte Konfiguration griffbereit habe. Wer das nicht möchte, findet auch entsprechende Apps für Windows, Linux, macOS, iOS und Android.