#SSH

cmux ssh uzaktaki bir makine için bir çalışma alanı oluşturur. Tarayıcı bölmeleri uzak ağ üzerinden yönlendirilir, dosyalar scp yoluyla sürükleyip bırakılır, kodlama aracıları yerel kenar çubuğunuza bildirimler gönderir ve oturumlar bağlantı kesildiğinde yeniden bağlanır.

#Kullanım

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, ana bilgisayar takma adları, kimlik dosyaları ve proxy ayarları için ~/.ssh/config dosyanızı okur. Tüm bayraklar ssh eşdeğerlerini yansıtır.

#Bayraklar

BayrakAçıklama
--nameÇalışma alanı başlığını ayarlayın
-p, --portSSH bağlantı noktası (varsayılan 22)
-i, --identityKimlik dosyasının yolu
-o, --ssh-optionİsteğe bağlı SSH seçeneklerini iletin (ör. -o StrictHostKeyChecking=no)
--no-focusGeçiş yapmadan çalışma alanını oluşturun

Bir web sitesi veya araç cmux'da aç düğmesi sunmak istediğinde cmux SSH derin bağlantılarını kullanın. Bağlantı cmux'u açar, bir onay istemi gösterir ve kullanıcı onayladıktan sonra eşdeğer cmux ssh komutunu çalıştırır.

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

Web sitesi düğmeleri için cmux.com yedek URL'sini kullanın. Yerel bağlantıyı açar ve cmux yüklü değilse indirme işlemini gösterir.

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

Bilgi istemi ve kurallar düğmeleri aynı geri dönüş şeklini kullanır. Virgüller, iki nokta üst üste ve gerçek artı işaretleri, URL olarak kodlandıklarında korunur:

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

Kontrol paneli düğmeleri için SVG simgesini veya taramalı görüntü gerektiğinde PNG logosunu kullanın:

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

Başlıkların, ana makine takma adlarının ve kullanıcı adlarının güvenli bir şekilde kodlanması için URLSearchParams ile yedek URL'yi oluşturun:

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();
ParametreAnlamı
hostGerekli SSH ana bilgisayarı veya ~/.ssh/config takma adı.
userİsteğe bağlı SSH kullanıcısı. cmux, onu user@host olarak Host ile birleştirir.
portİsteğe bağlı SSH bağlantı noktası, 1 ila 65535.
title / nameİsteğe bağlı çalışma alanı başlığı. Başlık veya adlardan yalnızca birini kullanın.
connect-timeoutSaniye cinsinden isteğe bağlı ConnectTimeout değeri, 1'den 600'e kadar.
server-alive-intervalİsteğe bağlı ServerAliveInterval değeri saniye cinsinden, 1'den 3600'e kadar.
server-alive-count-maxİsteğe bağlı ServerAliveCountMax değeri, 1'den 100'e kadar.
host-key-policyİsteğe bağlı StrictHostKeyChecking politikası: yeniyi kabul et, sor, katı veya evet.
no-focusİsteğe bağlı boole. true çalışma alanını ona geçmeden oluşturur.

Kararlı uygulama için cmux://, Nightly için cmux-nightly:// ve Hata Ayıklama veya etiketli geliştirme yapıları için cmux-dev:// kullanın.

Harici bağlantılar kimlik dosyalarını, ham ssh seçeneklerini, komutları, ProxyCommand'ı veya iletim kurallarını aktaramaz. Bunun yerine anahtarları, ProxyJump'ı, Ana BilgisayarAdı'nı ve gelişmiş seçenekleri ~/.ssh/config içine yerleştirin. cmux komut önizlemesini görüntüler ve kullanıcının bağlanmadan önce SSH hedefine güvenmesini gerektirir.

#Tarayıcı bölmeleri

Uzak çalışma alanındaki tarayıcı bölmeleri, tüm HTTP ve WebSocket trafiğini uzak makinenin ağı üzerinden yönlendirir. localhost:3000 yazın ve uzak kutuda çalışan dev sunucusuna bakıyorsunuz. -L bayrağı yok, manuel bağlantı noktası yönlendirme yok. Her uzak çalışma alanı yalıtılmış bir çerez deposuna sahip olur, böylece oturumlar bağlantı başına kapsamlanır.

#Sürükle ve bırak

Bir görüntüyü veya dosyayı uzak bir terminale sürükleyin ve cmux bunu mevcut SSH bağlantısı üzerinden scp aracılığıyla yükler. cmux, TTY tarafından ön plandaki SSH işlemini algılar ve yüklemeyi ControlMaster çoğullaması yoluyla yönlendirir.

#Bildirimler

Uzak makinedeki işlemler, yerel örneğinizde yürütülen cmux komutlarını çalıştırabilir. Bir kodlama aracısı uzak kutuda cmux notify'ı çağırdığında, bildirim yerel kenar çubuğunuzda görünür. Çalışma alanı sekmesinde mavi halka yanar. Cmd+Shift+U ona atlar. Kesintili bağlantılardan gelen spam bildirimleri, ana bilgisayar başına bekleme süresiyle bastırılır.

#SSH üzerinden kodlama aracıları

cmux Claude-teams ve cmux omo'nun her ikisi de SSH oturumlarında çalışır. Uzak ana bilgisayardaki Go geçiş arka plan programı, yerel Swift CLI'nin yaptığı tmux uyumlu çevirinin aynısını işler. Ekip arkadaşı ajanları, hesaplama uzak kutuda çalışırken yerel makinenizde yerel cmux bölünmeleri olarak ortaya çıkar.

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

#Yeniden bağlan

Bağlantı kesildiğinde cmux üstel geri çekilmeyle yeniden bağlanır (3 sn, 6 sn, 12 sn, 60 sn'ye kadar). Uzak oturum devam eder ve cmux yeniden bağlanıldığında yeniden bağlanır ve en küçük ekran kazanma semantiğiyle yeniden boyutlandırılır. Varsayılan canlı tutma seçenekleri (ServerAliveInterval=20, ServerAliveCountMax=2), yapılandırmanız bunları zaten ayarlamadığı sürece eklenir.

#Aktarma arka plan programı

İlk bağlantıda cmux uzak ana bilgisayarı inceler (uname -s, uname -m) ve sürümlendirilmiş bir cmuxd-remote ikili dosyasını yükler. İkili dosya stdio üzerinden JSON-RPC'yi konuşur ve üç şeyi yönetir:

ÖzellikNasıl
Tarayıcı trafiği proxy'si oluşturmaArka plan programının stdio kanalı üzerinden SOCKS5 ve HTTP CONNECT
CLI geçişiUzak işlemlerin cmux komutlarını yerel olarak çağırabilmesi için HMAC-SHA256 kimlik doğrulamasıyla TCP tünelini tersine çevirin
Oturum yönetimiYeniden bağlantılarda oturumları sürdürür, birden fazla ekte PTY'nin yeniden boyutlandırılmasını koordine eder

Arka plan programı ikili dosyası, uzak ana bilgisayarda ~/.cmux/bin/cmuxd-remote/<version>/<os>-<arch>/cmuxd-remote konumunda depolanır ve uygulamaya katıştırılmış bir SHA-256 bildirimine göre doğrulanır.