#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_ed25519cmux ssh liest Ihre ~/.ssh/config für Host-Aliase, Identitätsdateien und Proxy-Einstellungen. Alle Flags spiegeln ihre SSH-Entsprechungen wider.
#Flaggen
| Flagge | Beschreibung |
|---|---|
--name | Legen Sie den Titel des Arbeitsbereichs fest |
-p, --port | SSH-Port (Standard 22) |
-i, --identity | Pfad zur Identitätsdatei |
-o, --ssh-option | Übergeben Sie beliebige SSH-Optionen (z. B. -o StrictHostKeyChecking=no) |
--no-focus | Erstellen Sie den Arbeitsbereich, ohne dorthin zu wechseln |
#SSH-Deep-Links
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=trueVerwenden 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=FreestyleEingabeaufforderungs- 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%20PRsVerwenden 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.pngErstellen 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();| Parameter | Bedeutung |
|---|---|
host | Erforderlicher SSH-Host oder ~/.ssh/config-Alias. |
user | Optionaler SSH-Benutzer. cmux kombiniert es mit Host als user@host. |
port | Optionaler SSH-Port, 1 bis 65535. |
title / name | Optionaler Arbeitsbereichstitel. Verwenden Sie nur einen Titel oder einen Namen. |
connect-timeout | Optionaler ConnectTimeout-Wert in Sekunden, 1 bis 600. |
server-alive-interval | Optionaler ServerAliveInterval-Wert in Sekunden, 1 bis 3600. |
server-alive-count-max | Optionaler ServerAliveCountMax-Wert, 1 bis 100. |
host-key-policy | Optionale StrictHostKeyChecking-Richtlinie: Accept-New, Ask, Strict oder Yes. |
no-focus | Optionaler 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:
| Funktion | Wie |
|---|---|
| Proxying des Browser-Verkehrs | SOCKS5 und HTTP CONNECT über den stdio-Kanal des Daemons |
| CLI-Relais | Reverse-TCP-Tunnel mit HMAC-SHA256-Authentifizierung, damit Remote-Prozesse cmux-Befehle lokal aufrufen können |
| Sitzungsverwaltung | Hä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.