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, --portพอร์ต SSH (ค่าเริ่มต้น 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:// สำหรับ 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 ที่ฝังอยู่ในแอป