#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_ed25519cmux ssh อ่าน ~/.ssh/config ของคุณสำหรับชื่อแทนโฮสต์ ไฟล์ข้อมูลระบุตัวตน และการตั้งค่าพร็อกซี ธงทั้งหมดสะท้อนเทียบเท่า ssh
#ธง
| ธง | คำอธิบาย |
|---|---|
--name | ตั้งชื่อพื้นที่ทำงาน |
-p, --port | พอร์ต SSH (ค่าเริ่มต้น 22) |
-i, --identity | เส้นทางไปยังไฟล์ข้อมูลประจำตัว |
-o, --ssh-option | ส่งผ่านตัวเลือก SSH ที่กำหนดเอง (เช่น -o StrictHostKeyChecking=no) |
--no-focus | สร้างพื้นที่ทำงานโดยไม่ต้องสลับไปใช้ |
#ลิงก์ในรายละเอียด SSH
ใช้ลิงก์ในรายละเอียด 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:// สำหรับ Debug หรือแท็ก dev builds
ลิงก์ภายนอกไม่สามารถส่งผ่านไฟล์ข้อมูลประจำตัว ตัวเลือก Raw ssh คำสั่ง ProxyCommand หรือกฎการส่งต่อ ใส่คีย์, ProxyJump, HostName และตัวเลือกขั้นสูงใน ~/.ssh/config แทน cmux แสดงตัวอย่างคำสั่งและกำหนดให้ผู้ใช้เชื่อถือเป้าหมาย SSH ก่อนทำการเชื่อมต่อ
#บานหน้าต่างเบราว์เซอร์
บานหน้าต่างเบราว์เซอร์ในพื้นที่ทำงานระยะไกลจะกำหนดเส้นทางการรับส่งข้อมูล HTTP และ WebSocket ทั้งหมดผ่านเครือข่ายของเครื่องระยะไกล พิมพ์ localhost:3000 และคุณกำลังดูเซิร์ฟเวอร์ dev ที่ทำงานบนกล่องระยะไกล ไม่มีแฟล็ก -L ไม่มีการส่งต่อพอร์ตด้วยตนเอง พื้นที่ทำงานระยะไกลแต่ละแห่งจะได้รับที่เก็บคุกกี้แบบแยก ดังนั้นเซสชันจึงมีการกำหนดขอบเขตตามการเชื่อมต่อ
#ลากและวาง
ลากรูปภาพหรือไฟล์ลงในเทอร์มินัลระยะไกลแล้ว cmux อัปโหลดผ่าน scp ผ่านการเชื่อมต่อ SSH ที่มีอยู่ cmux ตรวจจับกระบวนการ SSH เบื้องหน้าโดย TTY และกำหนดเส้นทางการอัปโหลดผ่านมัลติเพล็กซ์ของ ControlMaster
#การแจ้งเตือน
กระบวนการบนเครื่องระยะไกลสามารถเรียกใช้คำสั่ง cmux ที่ดำเนินการบนอินสแตนซ์ในเครื่องของคุณได้ เมื่อตัวแทนการเขียนโค้ดเรียกการแจ้งเตือน cmux บนกล่องระยะไกล การแจ้งเตือนจะปรากฏในแถบด้านข้างภายในเครื่องของคุณ วงแหวนสีน้ำเงินจะสว่างขึ้นบนแท็บพื้นที่ทำงาน Cmd+Shift+U ข้ามไปที่มัน สแปมการแจ้งเตือนจากการเชื่อมต่อที่ไม่สม่ำเสมอจะถูกระงับด้วยคูลดาวน์ต่อโฮสต์
#เอเจนต์การเข้ารหัสบน SSH
cmux claude-teams และ cmux omo ทั้งคู่ทำงานในเซสชัน SSH Go Relay Daemon บนรีโมตโฮสต์จะจัดการการแปล tmux-compat แบบเดียวกับที่ Swift CLI ในเครื่องทำ เอเจนต์เพื่อนร่วมทีมจะเกิดเมื่อ cmux ดั้งเดิมแยกบนเครื่องของคุณในขณะที่การคำนวณทำงานบนกล่องระยะไกล
# Inside an SSH session:
cmux claude-teams
cmux omo#เชื่อมต่อใหม่
เมื่อการเชื่อมต่อหลุด cmux จะเชื่อมต่อใหม่ด้วย exponential backoff (3s, 6s, 12s, up to 60s) เซสชันระยะไกลยังคงอยู่และ cmux จะเชื่อมต่อใหม่เมื่อเชื่อมต่อใหม่ โดยปรับขนาดด้วยซีแมนทิกส์การชนะหน้าจอที่เล็กที่สุด ตัวเลือก Keepalive เริ่มต้น (ServerAliveInterval=20, ServerAliveCountMax=2) จะถูกแทรก เว้นแต่การกำหนดค่าของคุณจะตั้งค่าไว้แล้ว
#รีเลย์เดมอน
ในการเชื่อมต่อครั้งแรก cmux จะตรวจสอบโฮสต์ระยะไกล (uname -s, uname -m) และอัปโหลดไบนารี cmuxd-remote เวอร์ชัน ไบนารี่พูด JSON-RPC ผ่าน stdio และจัดการสามสิ่ง:
| คุณสมบัติ | อย่างไร |
|---|---|
| การพร็อกซีการรับส่งข้อมูลเบราว์เซอร์ | SOCKS5 และ HTTP CONNECT ผ่านช่องทาง stdio ของ daemon |
| รีเลย์ CLI | ย้อนกลับช่องสัญญาณ TCP ด้วยการตรวจสอบสิทธิ์ HMAC-SHA256 เพื่อให้กระบวนการระยะไกลสามารถเรียกคำสั่ง cmux ในเครื่องได้ |
| การจัดการเซสชัน | คงเซสชันไว้ในการเชื่อมต่อใหม่ ประสานการปรับขนาด PTY ในไฟล์แนบหลายไฟล์ |
ไบนารี daemon ถูกเก็บไว้ที่ ~/.cmux/bin/cmuxd-remote/<version>/<os>-<arch>/cmuxd-remote บนโฮสต์ระยะไกลและตรวจสอบกับไฟล์ Manifest SHA-256 ที่ฝังอยู่ในแอป