Thanks to visit codestin.com
Credit goes to cmux.com

#SSH

cmux ssh создает рабочую область для удаленной машины. Панели браузера проходят через удаленную сеть, файлы перетаскиваются через scp, агенты кодирования отправляют уведомления на локальную боковую панель, а сеансы переподключаются при сбросе.

#Использование

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 считывает ваш ~/.ssh/config на предмет псевдонимов хостов, идентификационных файлов и настроек прокси. Все флаги отражают свои эквиваленты ssh.

#Флаги

ФлагОписание
--nameУстановите заголовок рабочей области
-p, --portSSH-порт (по умолчанию 22)
-i, --identityПуть к идентификационному файлу
-o, --ssh-optionПередайте произвольные параметры SSH (например, -o StrictHostKeyChecking=no)
--no-focusСоздайте рабочее пространство, не переключаясь на него

Используйте глубокие ссылки cmux SSH, когда веб-сайт или инструмент хочет предложить кнопку «Открыть в cmux». Ссылка открывает cmux, отображает запрос на подтверждение, а затем запускает эквивалентную команду cmux ssh после подтверждения пользователя.

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

Используйте резервный URL-адрес cmux.com для кнопок веб-сайта. Он открывает собственную ссылку и показывает загрузку, если cmux не установлен.

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

Кнопки подсказки и правил имеют одинаковую резервную форму. Запятые, двоеточия и литеральные знаки плюс сохраняются при URL-кодировании:

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

Используйте значок SVG для кнопок панели управления или логотип PNG, если требуется растровое изображение:

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

Создайте резервный URL-адрес с помощью URLSearchParams, чтобы заголовки, псевдонимы хостов и имена пользователей были безопасно закодированы:

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();
ПараметрЗначение
hostТребуемый хост SSH или псевдоним ~/.ssh/config.
userНеобязательный пользователь SSH. cmux объединяет его с хостом как user@host.
portДополнительный порт SSH, от 1 до 65535.
title / nameНеобязательное название рабочей области. Используйте только одно из названий или имени.
connect-timeoutНеобязательное значение ConnectTimeout в секундах, от 1 до 600.
server-alive-intervalНеобязательное значение ServerAliveInterval в секундах от 1 до 3600.
server-alive-count-maxНеобязательное значение ServerAliveCountMax, от 1 до 100.
host-key-policyНеобязательная политика StrictHostKeyChecking: принять новый, спросить, строгий или да.
no-focusНеобязательное логическое значение. true создает рабочую область без переключения на нее.

Используйте cmux:// для стабильной версии приложения, cmux-nightly:// для Nightly и cmux-dev:// для отладочных или помеченных сборок разработки.

Внешние ссылки не могут передавать идентификационные файлы, необработанные параметры ssh, команды, ProxyCommand или правила пересылки. Вместо этого поместите ключи, ProxyJump, HostName и дополнительные параметры в ~/.ssh/config. cmux отображает предварительный просмотр команды и требует, чтобы пользователь доверял цели SSH перед подключением.

#Панели браузера

Панели браузера в удаленной рабочей области направляют весь трафик HTTP и WebSocket через сеть удаленного компьютера. Введите localhost:3000, и вы увидите сервер разработки, работающий на удаленном компьютере. Никаких флагов -L, никакой ручной переадресации портов. Каждое удаленное рабочее пространство имеет изолированное хранилище файлов cookie, поэтому область действия сеансов определяется для каждого соединения.

#Перетащите

Перетащите изображение или файл на удаленный терминал, и cmux загрузит его через scp через существующее соединение SSH. cmux обнаруживает приоритетный процесс SSH по TTY и направляет загрузку через мультиплексирование ControlMaster.

#Уведомления

Процессы на удаленном компьютере могут запускать команды cmux, которые выполняются на вашем локальном экземпляре. Когда агент кодирования вызывает cmux notify на удаленном компьютере, уведомление появляется на локальной боковой панели. На вкладке рабочей области загорается синее кольцо. Cmd+Shift+U перейдет к нему. Спам-уведомления от нестабильных соединений подавляется с помощью времени восстановления для каждого хоста.

#Агенты кодирования через SSH

cmux claude-teams и cmux omo работают внутри сеансов SSH. Демон ретрансляции Go на удаленном хосте обрабатывает ту же трансляцию, совместимую с tmux, что и локальный интерфейс командной строки Swift. Агенты Teammate появляются как собственные разделения cmux на вашем локальном компьютере, в то время как вычисления выполняются на удаленном компьютере.

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

#Восстановить соединение

Когда соединение обрывается, cmux повторно подключается с экспоненциальной задержкой (3 с, 6 с, 12 с, до 60 с). Удаленный сеанс сохраняется, и cmux повторно подключается при повторном подключении, изменяя размер с учетом семантики наименьшего экрана. Параметры поддержки активности по умолчанию (ServerAliveInterval=20, ServerAliveCountMax=2) вводятся, если ваша конфигурация уже не установила их.

#Релейный демон

При первом подключении cmux проверяет удаленный хост (uname -s, uname -m) и загружает двоичный файл cmuxd-remote с версией. Двоичный файл обрабатывает JSON-RPC через stdio и обрабатывает три вещи:

ОсобенностьКак
Проксирование браузерного трафикаSOCKS5 и HTTP CONNECT через канал stdio демона
Реле CLIОбратный TCP-туннель с аутентификацией HMAC-SHA256, чтобы удаленные процессы могли локально вызывать команды cmux.
Управление сеансамиСохраняет сеансы при повторных подключениях, координирует изменение размера PTY для нескольких вложений.

Двоичный файл демона хранится в ~/.cmux/bin/cmuxd-remote/<version>/<os>-<arch>/cmuxd-remote на удаленном хосте и проверяется на соответствие манифесту SHA-256, встроенному в приложение.