#SSH

cmux ssh erstellt einen Arbeitsbereich für einen Remote-Computer. Browserfenster werden durch das Remote-Netzwerk weitergeleitet, Dateien werden per Drag-and-Drop per SCP verschoben, Codierungsagenten senden Benachrichtigungen an Ihre lokale Seitenleiste und Sitzungen werden beim Ablegen wieder verbunden.

#Nutzung

cmux ssh user@remote
cmux ssh user@remote --name "dev server"
cmux ssh user@remote -p 2222
cmux ssh user@remote -i ~/.ssh/id_ed25519

cmux ssh liest Ihre ~/.ssh/config für Host-Aliase, Identitätsdateien und Proxy-Einstellungen. Alle Flags spiegeln ihre SSH-Entsprechungen wider.

#Flaggen

FlaggeBeschreibung
--nameLegen Sie den Titel des Arbeitsbereichs fest
-p, --portSSH-Port (Standard 22)
-i, --identityPfad zur Identitätsdatei
-o, --ssh-optionÜbergeben Sie beliebige SSH-Optionen (z. B. -o StrictHostKeyChecking=no)
--no-focusErstellen Sie den Arbeitsbereich, ohne dorthin zu wechseln

Verwenden Sie cmux-SSH-Deep-Links, wenn eine Website oder ein Tool eine Schaltfläche „In cmux öffnen“ anbieten möchte. Der Link öffnet cmux, zeigt eine Bestätigungsaufforderung an und führt dann den entsprechenden cmux-ssh-Befehl aus, nachdem der Benutzer dies bestätigt hat.

cmux://ssh?host=dev.example.com
cmux://ssh?host=dev.example.com&user=alice&port=2222&title=GPU%20box
cmux://ssh?host=workspace123.vm-ssh.freestyle.sh&user=workspace123%2Csession-token
cmux://ssh?host=dev.example.com&host-key-policy=accept-new&no-focus=true

Verwenden Sie die Fallback-URL cmux.com für Website-Schaltflächen. Es öffnet den nativen Link und zeigt den Download an, wenn cmux nicht installiert ist.

https://cmux.com/deeplink/ssh?host=workspace123.vm-ssh.freestyle.sh&user=workspace123%2Csession-token&title=Freestyle

Eingabeaufforderungs- und Regelschaltflächen verwenden dieselbe Fallback-Form. Kommas, Doppelpunkte und wörtliche Pluszeichen bleiben erhalten, wenn sie URL-codiert werden:

https://cmux.com/deeplink/prompt?text=Review%20this%20branch
https://cmux.com/deeplink/rules?name=freestyle&text=Prefer%20commas,%20colons:%20and%20small%20PRs

Verwenden Sie das SVG-Symbol für Dashboard-Schaltflächen oder das PNG-Logo, wenn ein Rasterbild erforderlich ist:

https://cmux.com/cmux-icon.svg
https://cmux.com/logo.png

Erstellen Sie die Fallback-URL mit URLSearchParams, damit Titel, Host-Aliase und Benutzernamen sicher codiert werden:

const params = new URLSearchParams({
  host: "workspace123.vm-ssh.freestyle.sh",
  user: "workspace123,session-token",
  title: "Freestyle",
});

const href = "https://cmux.com/deeplink/ssh?" + params.toString();
ParameterBedeutung
hostErforderlicher SSH-Host oder ~/.ssh/config-Alias.
userOptionaler SSH-Benutzer. cmux kombiniert es mit Host als user@host.
portOptionaler SSH-Port, 1 bis 65535.
title / nameOptionaler Arbeitsbereichstitel. Verwenden Sie nur einen Titel oder einen Namen.
connect-timeoutOptionaler ConnectTimeout-Wert in Sekunden, 1 bis 600.
server-alive-intervalOptionaler ServerAliveInterval-Wert in Sekunden, 1 bis 3600.
server-alive-count-maxOptionaler ServerAliveCountMax-Wert, 1 bis 100.
host-key-policyOptionale StrictHostKeyChecking-Richtlinie: Accept-New, Ask, Strict oder Yes.
no-focusOptionaler boolescher Wert. true erstellt den Arbeitsbereich, ohne dorthin zu wechseln.

Verwenden Sie cmux:// für die stabile App, cmux-nightly:// für Nightly und cmux-dev:// für Debug oder getaggte Dev-Builds.

Externe Links können keine Identitätsdateien, unformatierten SSH-Optionen, Befehle, ProxyCommand oder Weiterleitungsregeln weitergeben. Fügen Sie Schlüssel, ProxyJump, HostName und erweiterte Optionen stattdessen in ~/.ssh/config ein. cmux zeigt die Befehlsvorschau an und fordert den Benutzer auf, dem SSH-Ziel zu vertrauen, bevor er eine Verbindung herstellt.

#Browserbereiche

Browserbereiche in einem Remote-Arbeitsbereich leiten den gesamten HTTP- und WebSocket-Verkehr über das Netzwerk des Remote-Computers. Geben Sie „localhost:3000“ ein und Sie sehen den Entwicklungsserver, der auf der Remote-Box läuft. Keine -L-Flags, keine manuelle Portweiterleitung. Jeder Remote-Arbeitsbereich erhält einen isolierten Cookie-Speicher, sodass die Sitzungen pro Verbindung begrenzt sind.

#Ziehen und ablegen

Ziehen Sie ein Bild oder eine Datei in ein Remote-Terminal und cmux lädt es über scp über die bestehende SSH-Verbindung hoch. cmux erkennt den Vordergrund-SSH-Prozess per TTY und leitet den Upload über ControlMaster-Multiplexing weiter.

#Benachrichtigungen

Prozesse auf dem Remote-Computer können cmux-Befehle ausführen, die auf Ihrer lokalen Instanz ausgeführt werden. Wenn ein Coding-Agent cmux notify auf der Remote-Box aufruft, wird die Benachrichtigung in Ihrer lokalen Seitenleiste angezeigt. Auf der Registerkarte „Arbeitsbereich“ leuchtet der blaue Ring auf. Befehl+Umschalt+U springt dorthin. Benachrichtigungs-Spam von instabilen Verbindungen wird mit einer Abklingzeit pro Host unterdrückt.

#Codierungsagenten über SSH

cmux claude-teams und cmux omo funktionieren beide in SSH-Sitzungen. Der Go-Relay-Daemon auf dem Remote-Host übernimmt die gleiche tmux-compat-Übersetzung wie die lokale Swift-CLI. Teamkollegen-Agenten erscheinen als native cmux-Splits auf Ihrem lokalen Computer, während die Berechnung auf der Remote-Box ausgeführt wird.

# Inside an SSH session:
cmux claude-teams
cmux omo

#Wieder verbinden

Wenn die Verbindung unterbrochen wird, stellt cmux die Verbindung mit einem exponentiellen Backoff (3 Sekunden, 6 Sekunden, 12 Sekunden, bis zu 60 Sekunden) wieder her. Die Remote-Sitzung bleibt bestehen und cmux wird bei erneuter Verbindung erneut verbunden, wobei die Größe mit der Semantik der kleinsten Bildschirmgewinne geändert wird. Standardmäßige Keepalive-Optionen (ServerAliveInterval=20, ServerAliveCountMax=2) werden eingefügt, es sei denn, Ihre Konfiguration legt sie bereits fest.

#Relay-Daemon

Bei der ersten Verbindung prüft cmux den Remote-Host (uname -s, uname -m) und lädt eine versionierte cmuxd-remote-Binärdatei hoch. Die Binärdatei spricht JSON-RPC über stdio und verarbeitet drei Dinge:

FunktionWie
Proxying des Browser-VerkehrsSOCKS5 und HTTP CONNECT über den stdio-Kanal des Daemons
CLI-RelaisReverse-TCP-Tunnel mit HMAC-SHA256-Authentifizierung, damit Remote-Prozesse cmux-Befehle lokal aufrufen können
SitzungsverwaltungHält Sitzungen über erneute Verbindungen hinweg aufrecht und koordiniert die PTY-Größenänderung über mehrere Anhänge hinweg

Die Daemon-Binärdatei wird unter ~/.cmux/bin/cmuxd-remote/<version>/<os>-<arch>/cmuxd-remote auf dem Remote-Host gespeichert und anhand eines in die App eingebetteten SHA-256-Manifests überprüft.