bambouville

Hosts & Verbindungen

Der Host-Editor

Drücken Sie ⌘N für einen neuen Host oder tippen Sie einen vorhandenen Host an, um ihn zu bearbeiten. Der Editor hat vier Tabs — Verbindung, erweitert, Weiterleitung, Snippets — und eine verbinden-Leiste. Auf dem iPhone erscheinen dieselben vier Abschnitte als Chips — Verbindung, erweitert, Tunnel, Snippets —, wobei Verbindungsfelder und Tunnelregeln vorgemerkt bleiben, bis Sie auf „Sichern“ tippen (andere Änderungen greifen sofort, wie auf dem iPad); der Editor ist auf beiden Geräten derselbe.

Der Tab „Verbindung“ enthält die Grundlagen: Name, Adresse, Port (1–65535), Benutzer, Identität (ein Key von Ihrer Seite Keys) und Passwort. Ein hier eingetipptes Passwort gilt nur für die Sitzung: Es wird ausschließlich für die laufende Sitzung behalten und nie gespeichert. Die einzige Ausnahme ist ein Host, der über die Einrichtung in der Nähe oder Kontinuität eingerichtet wurde und sich per Passwort authentifiziert — das Passwort, das Sie einmal auf dem neuen Gerät eintippen, wird als gesicherte Anmeldeinformation im Schlüsselbund dieses Geräts behalten, nie synchronisiert, und der Editor kann es später ändern (beim Sichern wird das gespeicherte Passwort ersetzt).

Der Host-Editor mit seinen vier Tabs — Verbindung, erweitert, Weiterleitung, Snippets — sowie den Verbindungsfeldern und der Verbinden-Leiste.
Vier Tabs am oberen Rand und eine Verbinden-Leiste, die in jedem Tab unten verankert ist.

Transport: SSH oder Mosh

Jeder Host wählt einen Transport:

  • ssh — eine einzige SSH-Verbindung; tmux-Tabs bleiben auf der Hauptsitzung.
  • mosh — ein mosh-Terminal über UDP. Mosh hält Ihre Sitzung über den Wechsel zwischen WLAN ↔ Mobilfunk und über Ruhezustand/Aufwachen hinweg am Leben und fühlt sich auf verlustbehafteten Strecken flotter an. Es setzt voraus, dass mosh-server auf dem Host installiert ist. tmux-Tabs nutzen einen zweiten SSH-Seitenkanal. Die mosh-Seite erzählt die ganze Geschichte, inklusive echtem Scrollback.

Der UDP-Verkehr von mosh kann Bastionen nicht durchqueren: Wenn Sie mosh über einen Jump-Host verwenden und der mosh-Server nicht erreichbar ist, sagt Tessera Ihnen das („mosh ist über die Jump-Kette nicht erreichbar …“) und verbindet sich neu über SSH.

Startmodi

  • Auto-tmux — hängt sich an eine Host-eigene tmux-Sitzung mit dem deterministischen Namen tessera-XXXXXXXX an (oder legt sie an); der Name übersteht Neuinstallationen der App. Der Standard — und der Modus, der abgebrochene Verbindungen harmlos macht.
  • benanntes tmux — hängt sich an einen tmux-Sitzungsnamen an, den Sie wählen; Namen mit ungültigen Zeichen fallen auf den automatisch abgeleiteten zurück.
  • eigen — ein wörtlicher Startbefehl. Über ssh wird er an die Login-Shell gesendet, über mosh von mosh-server new -- <command> ausgeführt.

Was die tmux-Modi bringen, steht unter tmux; wie der Startmodus mit Tunneln zusammenspielt, unter Portweiterleitung.

Jump-Hosts

Jeder gesicherte Host lässt sich als SSH-Bastion (ProxyJump) verwenden: Wählen Sie ihn im Host-Editor aus. Ketten verschachteln sich — der eigene Jump-Host des Jump-Hosts verlängert die Kette — und der Editor zeigt den daraus entstehenden Pfad („a → b → host“) samt Warnungen für gebrochene Ketten.

  • Jeder Hop authentifiziert sich unabhängig mit eigener Identität oder eigenem Passwort. Hops mit Passwort bekommen im Jump-Host-Abschnitt des Editors ein Feld Passwort · <Hop-Name>, das nur für die laufende Sitzung behalten wird; „verbinden“ bleibt deaktiviert, bis jeder Hop eines hat.
  • Host-Key-Abfragen erscheinen pro Hop, die Bastion zuerst, und benennen jeweils den Endpunkt, der geprüft wird.
  • Eine gebrochene Kette scheitert kontrolliert: Wurde ein Jump-Host gelöscht, warnt der abhängige Host in seinem Editor, und die Verbindung schlägt fehl, statt stillschweigend direkt zu gehen. Fehler benennen den Hop, aus dem sie stammen („Jump-Host <Name>: …“).
  • In der kostenlosen Stufe belegt eine separat gesicherte Bastion einen eigenen Platz für gesicherte Hosts.

Tab „Erweitert“

  • OS-Logo — beim Verbinden automatisch erkannt oder manuell gesetzt (macos, ubuntu, debian, alpine, linux, raspbian).
  • Tags und Notizen — für Ihre eigene Ordnung.
  • Umgebungsvariablen — ein KEY=value pro Zeile; ein optional vorangestelltes export wird entfernt. Werte werden unverändert an die entfernte Shell übergeben — $HOME, $(…) und Anführungszeichen wirken genau so, wie sie geschrieben sind.
  • Terminal-Hintergrund — überschreibt den globalen Hintergrund pro Host.

Umgebungsvariablen und Startskripte laufen nur, wenn die tmux-Sitzung startet. Ändern Sie sie für einen Host, dessen tmux-Sitzung bereits existiert, beenden Sie diese Sitzung auf dem Server, damit die Änderungen greifen.

Snippets

Der Tab „Snippets“ enthält ein Startskript: Befehle, die direkt nach dem Verbinden gesendet werden (dieselbe tmux-Einschränkung von oben gilt).

Wenn eine Verbindung hängt

Während eine Sitzung aufgebaut wird, benennt das Start-Overlay die Phase, in der es steckt — verbinde, dann bei tmux-Hosts starte tmux (SSH) oder hänge tmux an (mosh), dann hänge Bereich an. Kommt eine Phase etwa zwölf Sekunden lang nicht voran, sagt das Overlay, welche Phase feststeckt („immer noch verbinde — der Handshake ist nicht abgeschlossen.“), und bietet einen Ausweg an, statt weiterzudrehen:

  • Host bearbeiten — öffnet den Host-Editor, wenn Adresse, Port oder Key das Problem sind,
  • erneut versuchen — bricht den Versuch ab und verbindet von vorn,
  • zurück — aufgeben und zu Ihren Hosts zurückkehren. Der Ausstieg aus einem hängenden Versuch trennt ihn vollständig — auf dem Server bleibt nichts laufen.

Der Timer läuft pro Phase, eine langsame Verbindung, die noch vorankommt, löst ihn also nie aus. Kann tmux selbst nicht starten — es ist nicht installiert, die Sitzung lässt sich nicht anlegen, oder die Dotfiles des Hosts starten beim Login bereits selbst tmux —, setzt Tessera Sie in eine einfache Shell und zeigt ein Banner, das genau sagt, was passiert ist, statt auf ein tmux zu warten, das nie antworten wird.

Das Start-Overlay hängt beim Verbinden: Die Phasenbeschriftung lautet „verbinde“, darunter steht der Name der tmux-Sitzung, eine Warnzeile lautet „immer noch verbinde — der Handshake ist nicht abgeschlossen.“, und darunter warten die Schaltflächen „Host bearbeiten“, „erneut versuchen“ und „zurück“.
Zwölf Sekunden ohne Fortschritt: Das Overlay benennt die Phase und bietet einen Ausweg an.

Sitzungen

Tessera hält zu beliebigen Hosts mehrere gleichzeitige Sitzungen offen. Auto-tmux-Hosts sind Singletons — eine tmux-Steuersitzung pro Host (bei benanntem tmux pro Host und Sitzungsname) —, während Hosts mit eigenem Befehl mehrere haben können („Name #2“, „Name #3“). Der Abschnitt aktiv in der Seitenleiste listet jede Sitzung auf, beschriftet mit „Name (tmux)“, „Name (tmux: Sitzungsname)“ oder „Name #N“, jeweils mit einer Trennen-Schaltfläche. Auf dem iPhone ist dieselbe Liste der Tab Sitzungen.

Wechseln Sie zwischen Sitzungen, indem Sie sie antippen, mit ⌘⇧K / ⌘⇧J zu den Nachbarn gehen oder mit ⌘K die Schnellwechsel-Palette öffnen: Tippen Sie, um Sitzungen (zuletzt genutzte zuerst) und Agenten zu filtern — stellen Sie der Eingabe ein @ voran, um auf Agenten einzugrenzen.

Sitzungswiederherstellung

Einstellungen → Terminal → Start → frühere Verbindungen steuert, was bei einem Neustart passiert:

  • fragen — zeigt einen Dialog „frühere Verbindungen wieder öffnen“ mit „immer wieder öffnen“ / „wieder öffnen“ / „jetzt nicht“.
  • immer — verbindet stillschweigend neu.
  • nie — startet leer.

Auf dem iPhone ersetzt ein einzelner Schalter beim Start wiederherstellen den Auswahldialog. Nur Sitzungen zu gesicherten Hosts mit intaktem Key-Material sind wiederherstellbar.

Die Rückkehr in den Vordergrund funktioniert genauso, nur klüger: Tessera wartet, bis jede offene Sitzung ihren Zustand gemeldet hat, bevor es entscheidet, was neu verbunden wird. Fallen mehrere Hosts gleichzeitig aus — oder gibt eine mosh-Sitzung erst verspätet zu, dass sie tot ist —, wird jede einzelne neu verbunden, keine bleibt liegen. Währenddessen zählt das Start-Overlay den Rest mit („+2 weitere Sitzungen verbinden neu“). Tessera ist bewusst eine Ein-Fenster-App (kein Multi-Scene auf dem iPad); die Seitenleiste und die Palette — auf dem iPhone die Tab-Leiste und der Umschalter — sind Ihre Wege durch die App.