MXterm Pro

SSH Server verwalten auf dem Mac, auch bei mehr als 50 Hosts

Henry AGI
6 Min. Lesezeit
Four steps for many servers: group hosts in Host Manager, import your SSH config, broadcast to a group of panes, read live server stats

So lassen sich mehr als 50 SSH Server verwalten, auch Cloud-VMs: Sie gruppieren Ihre Hosts auf dem Mac, legen Passwörter im System-Schlüsselbund ab und lesen CPU-, RAM- und Festplattenwerte live aus, ohne auf jedem Rechner einen Agent zu installieren. Der SSH Host Manager von MXterm Pro arbeitet dafür mit echten OpenSSH-Verbindungen. Im Free-Tarif speichern Sie standardmäßig 5 Hosts, Pro hebt die Grenze auf.

Für wen dieser Leitfaden gedacht ist

Dieser Leitfaden richtet sich an Personen, die Backend-Infrastruktur auf AWS, Google Cloud, DigitalOcean, Hetzner oder Bare Metal betreiben. Das sind meist mehr Hosts, als man im Kopf behält, verteilt auf Production, Staging und eine Handvoll einzelner Dev-Rechner.

Bei einem oder zwei Servern bleiben ein einfacher Tab in Terminal.app und Ihre ~/.ssh/config das simpelste Werkzeug. Die Ordnungsfunktionen unten (Gruppen, Filter, Broadcast und Telemetrie) lohnen sich erst, wenn Sie ein Dutzend Hosts oder mehr jonglieren und nicht mehr wissen, welcher Tab zu welchem gehört.

Passende AnleitungSSH-Verbindungsabbrüche auf dem MacBook verhindern

Dutzende Hosts gruppieren und filtern

Mit ⌘⇧H öffnen Sie den SSH Host Manager. Jeder Host bekommt Name, Adresse, Port, Benutzername und eine von drei Authentifizierungsarten: Passwort, private Schlüsseldatei oder Keyboard-Interactive. Die meisten Tastenkürzel, auch dieses, lassen sich unter Einstellungen → Tastenkürzel neu belegen. Zoom, ⌘, ⌘1 bis ⌘9 und einige weitere sind fest vergeben.

Jeder Host gehört zu genau einer Gruppe. Sechs Gruppen gibt es von Haus aus (Production, Staging, Testing, Cloud / VPS, Internal / VPN, Development), eigene können Sie hinzufügen. Über der Hostliste zeigt eine Reihe von Filter-Chips neben jeder Gruppe die aktuelle Anzahl.

Ein Klick auf „Production (14)“ reduziert eine Liste mit 50 Hosts auf die, bei denen eine Fehleingabe wehtut. Das ist eine flache Auswahl von Gruppenfiltern, kein verschachtelter Ordnerbaum. Ein eigenes Freitext-Suchfeld neben diesen Filtern gibt es nicht, erwarten Sie also nichts Ausgefeilteres.

Wenn Ihre Server in ~/.ssh/config stehen, liest die Schaltfläche Importieren die Zeilen Host, HostName, User, Port und IdentityFile und legt sie in einem Durchgang unter der Gruppe „Imported“ ab. Dieselbe Schaltfläche liest auch eine MobaXterm-Sitzungsdatei (nur SSH-Sitzungen, abgelegt unter „MobaXterm“) und einen iTerm2-Profilexport (Profile, deren Befehl eine einfache ssh-Zeile ist, abgelegt unter „iTerm2“). Auf einem Mac kann auch der Tab Import / Export im Session Manager nach iTerm2-Profilen suchen.

Dieser Gruppenname („MobaXterm“ oder „iTerm2“ bei diesen Importen) erscheint als Badge an jedem Host. Die Filterreihe listet aber nur die sechs Standardgruppen und Ihre eigenen. Legen Sie also eine Gruppe mit demselben Namen an, um danach zu filtern. In Pro wird aus einer Konfiguration mit 50 Hosts ein einziger Import statt fünfzig Formulare. Im Free-Tarif endet der Import bei der Grenze von 5 Hosts.

Der Import wertet ProxyJump und andere erweiterte Direktiven nicht aus. Mehr dazu weiter unten.

Wo Ihre Passwörter und Schlüssel tatsächlich liegen

SSH-Passwörter landen im Zugangsdatenspeicher Ihres Betriebssystems (auf dem Mac in der macOS Keychain) unter dem Dienstnamen com.mxterm.desktop.ssh, zugeordnet über die Host-ID. Eine Schlüssel-Passphrase wird nicht gespeichert: Die App entfernt sie, bevor die Hostliste geschrieben wird, und sie erreicht den Zugangsdatenspeicher des Systems nie. Der Windows-Anmeldeinformationsspeicher ist angebunden, SSH unter Windows ist aber nicht verifiziert.

In die eigene lokale Einstellungsdatei von MXterm Pro wird nichts Geheimes geschrieben. Ein älterer gespeicherter Host, der noch ein Klartextpasswort enthielt, wird beim nächsten Laden ohne dieses neu geschrieben.

Ein Schlüsseldateipfad wie ~/.ssh/id_ed25519 ist kein Geheimnis, sondern nur ein Pfad, deshalb bleibt dieses eine Feld in der normalen Hostliste. Das entspricht dem, was Sie auch in einer ~/.ssh/config sehen würden.

Warum sich das erneute Verbinden zum selben Server sofort anfühlt

Unter macOS trägt jede SSH-Verbindung, die MXterm Pro öffnet, drei Optionen: ControlMaster=auto, ControlPath=~/.mxterm/sockets/%r@%h:%p und ControlPersist=10m. Das ist echtes OpenSSH-Connection-Multiplexing, keine Eigenentwicklung.

Die erste Verbindung zu einem Host öffnet einen Master-Socket. Spätere Verbindungen zum selben Host, etwa ein zweiter Terminal-Tab oder das SFTP-Panel, nutzen ihn mit, und der Master bleibt nach dem Schließen der letzten Verbindung noch 10 Minuten bestehen. So entfallen ein neuer TCP-Handshake und eine erneute Anmeldung. Ändern Sie die Verbindungseinstellungen eines gespeicherten Hosts oder löschen ihn, wird seine gemeinsame Verbindung geschlossen. Das Dateipanel zeigt den Button Verbindung zurücksetzen, wenn der Server eine Anmeldung verweigert oder ein neues Passwort verlangt.

Das löst zugleich ein Problem bei Hosts mit Passwort-Authentifizierung. BatchMode=yes bedeutet, dass SFTP nicht selbst nach einem Passwort fragen kann. Ohne gemeinsamen Master-Socket würde sich ein Passwort-Host im Terminal-Tab verbinden und im Dateibrowser scheitern. Weil der ControlPath geteilt wird, hängt sich das SFTP-Panel an eine Sitzung, die Sie im Terminal-Pane bereits authentifiziert haben.

Denselben Befehl auf mehreren Servern gleichzeitig ausführen (Broadcast-Modus)

⌘⇧B schaltet den Broadcast-Modus ein, wobei alle Panes des aktuellen Tabs bereits in der Gruppe sind. Mit Option/Alt+Klick auf ein Pane nehmen Sie es heraus oder wieder auf. Clear leert die Gruppe, Select all füllt sie neu. Ein dauerhaftes Banner mit „Broadcast ON · N panes“ bleibt sichtbar. Tastenanschläge in einem Pane der Gruppe gehen an alle, in der Reihenfolge des Layouts.

Prüfen Sie zwei Dinge, bevor Sie sich bei 50 Servern darauf verlassen. Die Gruppe beginnt mit allen Panes des aktuellen Tabs, verkleinern Sie sie also vor dem Tippen, und sie erreicht nur die Panes dieses Tabs, nicht jede offene Verbindung. Außerdem gibt es keine Bestätigung pro Tastenanschlag, sobald der Modus läuft, denn der Sinn ist, einmal zu tippen und überall anzukommen.

Das Sicherheitsnetz ist das Banner, das kaum zu übersehen ist. Clear entfernt die ganze Gruppe, und Esc beendet den Modus sofort. Stellen Sie die Gruppe so sorgfältig zusammen, wie Sie es vor pssh oder synchronisierten tmux-Panes gegen Ihre Produktionsserver täten, denn das Tool hält Sie nicht davon ab, an die falschen sechs Server zu senden.

Live-Telemetrie der Server ohne Monitoring-Agent

Das Server Telemetry HUD sitzt am unteren Rand eines SSH-Tabs und zeigt CPU in %, RAM in %, Festplatte in % und Uptime, farbig grün, gelb oder rot (ab 65 % bzw. 85 %). Das HUD aktualisiert sich alle 20 Sekunden von selbst, und mit der Schaltfläche für manuelles Aktualisieren erhalten Sie sofort einen Wert.

Bei jeder Aktualisierung läuft über Ihre bestehende SSH-Verbindung ein kurzlebiger Einzeiler python3 -c "...". Er liest die CPU-Last aus os.getloadavg() im Verhältnis zur Kernzahl, den Speicher aus /proc/meminfo, die Festplatte aus shutil.disk_usage('/') und die Uptime aus /proc/uptime und beendet sich danach. Es wird nichts installiert, und auf dem Server bleibt nichts im Hintergrund.

Voraussetzung ist nur, dass python3 auf dem Remote-Host vorhanden ist. Viele Server-Images bringen es mit, minimale wie Alpine oft nicht. Ohne Python bleibt die Statistikleiste leer: Der ebenfalls versuchte Aufruf uptime liefert keine verwertbaren Felder, und MXterm Pro zeigt lieber keine Zahlen als erfundene. Der RAM wird aus /proc/meminfo gelesen, deshalb zeigt ein macOS- oder BSD-Server für den RAM einen Strich statt eines Prozentwerts.

Und was ist mit Jump-Hosts und Bastions?

Ein gespeicherter Host hat ein Feld Jump-Host / Bastion (mehrere lassen sich durch Kommas getrennt verketten) sowie die Option SSH-Agent weiterleiten. Die Verbindung wird als echtes ssh-argv mit entsprechend gesetztem -J und -A aufgebaut.

Der Importer für ~/.ssh/config füllt dieses Feld nicht für Sie aus. Er übernimmt nur HostName, User, Port und IdentityFile, eine ProxyJump-Zeile wird übersprungen statt übersetzt. Ein iTerm2-Profil, dessen Befehl ssh -J bastion host lautet, bringt seinen Jump-Host dagegen mit. Bei Hosts aus ~/.ssh/config oder von MobaXterm tragen Sie den Jump-Host einmal selbst im Formular des Hosts ein.

Alternativ ist ein Terminal-Pane ein echtes PTY. Hat Ihre ~/.ssh/config einen Eintrag Host prod-db mit der Zeile ProxyJump bastion, berücksichtigt ssh prod-db in einem normalen Shell-Pane diese Konfiguration genau wie Terminal.app.

Die Gruppenbezeichnung und die Statistikleiste dieses Hosts erhalten Sie auf diesem Weg nicht.

Broadcast erreicht die Panes eines Tabs. Ein Tab, der aus dem SSH Host Manager geöffnet wurde, ist an genau einen Host gebunden. Um in mehrere Server gleichzeitig zu tippen, öffnen Sie daher normale Shell-Panes in einem Tab, starten in jedem ssh <alias> und senden an diese. Free hat kein Pane-Limit.

Free oder Pro: Was 50 Server Sie tatsächlich kosten

Das ist die wichtigste Zahl für diesen Einsatz: Der Free-Tarif begrenzt Sie auf 5 gespeicherte SSH-Hosts. Gruppen, Import, Multiplexing, Broadcast und Telemetrie funktionieren in Free und Pro gleich. Ohne die unbegrenzte Hostzahl von Pro lassen sich aber keine 50 Hosts speichern.

Dieselbe Trennlinie zwischen Free und Pro zieht sich durch den Rest der App. Free hat kein Pane-Limit. Es erlaubt in einem Control Room (früher War Room) 2 Mitglieder pro Raum (Pro hat keine Mitgliedergrenze) und speichert 1 Rechner.

Für die Verwaltung von 50 Servern ist nichts davon nötig. Es spielt nur eine Rolle, wenn Sie neben Ihren SSH-Sitzungen auch Claude Code, Codex oder Gemini CLI gegen diese Server laufen lassen.

Vergleich mit iTerm2, Warp, Termius und MobaXterm für eine Server-Flotte

iTerm2 ist ein ausgereifter, kostenloser Terminal-Emulator nur für macOS mit hervorragender tmux-Integration und Profilverwaltung. Profile und der Keychain-gestützte Passwortmanager decken viel ab, einen eigenen SSH-Host-Manager mit Gruppenfiltern oder ein Telemetrie-HUD liefert er aber nicht mit. Das müssten Sie sich aus tmux, Dotfiles und getrennten Monitoring-Tools selbst zusammenbauen.

Warp ist ein modernes Terminal mit KI im selben Fenster wie Ihre Shell. Es ist eine starke Wahl, wenn Sie KI-Hilfe beim Schreiben von Befehlen und beim Ausführen von Agents wollen. Es ist nicht auf Dutzende gespeicherte SSH-Hosts mit Gruppen und Server-Statistiken ausgelegt. MXterm Pro ist auf mehrere Agents in geteilten Panes ausgelegt.

Termius ist hier der engste Konkurrent. Host-Synchronisierung über mehrere Geräte, eine mobile App und ein ausgereifter Host-Organizer sind echte Stärken, und wenn Sie Ihre Hostliste auf dem Smartphone brauchen, passt es besser. Mehrere KI-Coding-Agents nebeneinander auszuführen oder pro Agent einen Git Worktree anzulegen, kann es nicht.

MobaXterm bleibt das umfangreichste Werkzeug für Windows-Anwender, die neben SSH auch X11-Forwarding und Tunneling brauchen, hat aber keinen macOS-Build und keine Orchestrierung von KI-Agents.

Der Multi-Agent Control Room von MXterm Pro führt mehrere Agents (Claude Code, Codex, Gemini CLI und weitere) in geteilten Panes aus. Ist die Worktree-Isolierung eingeschaltet, erhält jedes Agent-Pane einen eigenen Git Worktree unter <repo>/.worktrees/<slug>. Das verringert die Wahrscheinlichkeit, dass der Fehler eines Agents die Arbeitskopie eines anderen berührt.

⌘J Command Recipes gleicht Ihre Eingabe mit einer eingebauten Sammlung fertiger Linux-Befehle ab. Das ist Schlüsselwort-Abgleich, kein Modell, das Bash schreibt.

Erste Schritte

Laden Sie MXterm Pro herunter und probieren Sie den SSH Host Manager mit so vielen Hosts aus, wie Sie heute haben. Gruppen, Import, Multiplexing, Broadcast und das Telemetrie-HUD sind alle im Free-Tarif verfügbar.

Die eine Hürde bei einer echten Flotte mit 50 Servern ist die Grenze von 5 gespeicherten Hosts. Mit den unbegrenzten Hosts von Pro kommen Sie darüber hinweg.

Sehen Sie es selbst in Aktion

Multi-Pane-SSH, Command Recipes (Cmd+J) und ein Multi-Agent Control Room (früher War Room): Der Start ist kostenlos.

MXterm Pro herunterladen

Wenn Sie MXterm Pro schon haben: Lesen Sie die Einrichtungsanleitung →

Neu bei MXterm Pro? Preise ansehen →

Häufig gestellte Fragen

Wie schützt MXterm Pro gespeicherte SSH-Zugangsdaten?

Gespeicherte SSH-Passwörter landen im Zugangsdatenspeicher des Betriebssystems (auf dem Mac in der macOS Keychain) unter dem Dienstnamen com.mxterm.desktop.ssh, nicht in der Einstellungsdatei der App. Eine Schlüssel-Passphrase wird nicht gespeichert. Ein Schlüsseldateipfad (~/.ssh/id_ed25519) ist kein Geheimnis und bleibt deshalb in der Hostliste. Dateipanel, Übertragungen und Statistikleiste verwenden BatchMode=yes und können anders als das Terminal-Pane nicht nach einem Passwort fragen.

Kann ich einen Befehl an mehrere Server gleichzeitig senden, und ist das sicher?

Ja. ⌘⇧B schaltet es ein, wobei alle Panes des aktuellen Tabs in der Gruppe sind. Mit Option/Alt+Klick schalten Sie ein Pane um, Clear leert die Gruppe, und Select all füllt sie neu. Ein dauerhaftes Banner „Broadcast ON · N panes“ bleibt sichtbar, und Esc beendet den Modus sofort. Es gibt keine Bestätigung pro Tastenanschlag, verkleinern Sie die Gruppe also zuerst. Die Absicherung ist ein Banner, das kaum zu übersehen und leicht zu beenden ist, keine Rückfrage.

Kann ich in der kostenlosen Version 50 gespeicherte Server verwalten?

Nein. Der Free-Tarif begrenzt gespeicherte SSH-Hosts auf 5, Pro hebt diese Grenze auf. Gruppen, Filter, Import, Multiplexing und Broadcast funktionieren in beiden Tarifen gleich, ebenso das Telemetrie-HUD. Die Hostzahl ist die Grenze, an die eine Flotte mit 50 Servern stößt.

Muss ich für das Telemetrie-HUD etwas auf dem Server installieren?

Es läuft kein dauerhafter Agent. Bei jeder Aktualisierung liest ein kurzlebiger python3-Einzeiler über Ihre bestehende SSH-Verbindung CPU-Last, /proc/meminfo, Festplattennutzung und /proc/uptime und beendet sich danach. Voraussetzung ist nur python3 auf dem Remote-Host, ohne bleibt die Statistikleiste leer.

Kann ich Jump-Hosts oder Bastion-Server verwenden?

Ja. Seit 1.0.21 hat jeder gespeicherte Host ein Feld Jump-Host / Bastion (mehrere durch Kommas verketten) und die Option SSH-Agent weiterleiten. Der Import von ~/.ssh/config überspringt ProxyJump-Zeilen weiterhin, tragen Sie den Jump-Host bei importierten Hosts also selbst ein. Sie können auch Ihren vorhandenen ssh-Alias in ein normales Shell-Pane tippen. Das funktioniert wie in Terminal.app, nur ohne Gruppe und Server-Statistiken des Hosts, die es nur beim Verbinden über den SSH Host Manager gibt.

Wird alles übernommen, wenn ich meine ~/.ssh/config importiere?

Der Importer liest die Zeilen Host, HostName, User, Port und IdentityFile und legt pro Host-Eintrag mit HostName einen gespeicherten Host an. Wildcard-Blöcke Host * und Einträge ohne HostName werden übersprungen, und nur die erste IdentityFile bleibt erhalten. ProxyJump, Match-Blöcke und andere erweiterte Direktiven wertet er nicht aus. Sie gelten weiterhin, wenn Sie den Alias direkt in einem Shell-Pane eintippen.

KI zu MXterm Pro fragen

Öffnen Sie eine Live-Antwort in ChatGPT, Claude oder Perplexity, die auf dieser Seite basiert. Den Text schreibt der Assistent, nicht wir. Prüfen Sie daher die Quellen, die er nennt.

Gesendete FrageWie kann ich mit MXterm Pro 50 oder mehr SSH-Server und Cloud-VMs von einem Mac aus verwalten?