#SSH
cmux ssh បង្កើតកន្លែងធ្វើការសម្រាប់ម៉ាស៊ីនពីចម្ងាយ។ ផ្ទាំងកម្មវិធីរុករកតាមអ៊ីនធឺណិតឆ្លងកាត់បណ្តាញពីចម្ងាយ ឯកសារអូសនិងទម្លាក់តាមរយៈ scp ភ្នាក់ងារសរសេរកូដផ្ញើការជូនដំណឹងទៅកាន់របារចំហៀងក្នុងតំបន់របស់អ្នក ហើយវគ្គភ្ជាប់ឡើងវិញនៅពេលទម្លាក់។
#ការប្រើប្រាស់
cmux ssh user@remote
cmux ssh user@remote --name "dev server"
cmux ssh user@remote --command 'omp "investigate auth"'
cmux ssh user@remote -p 2222
cmux ssh user@remote -i ~/.ssh/id_ed25519
cmux ssh user@remote --transport mosh
cmux mosh user@remote
cmux mosh-tmux user@remote
cmux mosh-tmux user@remote --session agent-maincmux ssh អាន ~/.ssh/config របស់អ្នកសម្រាប់ឈ្មោះក្លែងក្លាយម៉ាស៊ីន ឯកសារអត្តសញ្ញាណ និងការកំណត់ប្រូកស៊ី។ ទង់ទាំងអស់ឆ្លុះបញ្ចាំងពីសមមូល ssh របស់ពួកគេ។
#ទង់ជាតិ
| ទង់ជាតិ | ការពិពណ៌នា |
|---|---|
--name | កំណត់ចំណងជើងកន្លែងធ្វើការ |
--command | ដំណើរការអត្ថបទពាក្យបញ្ជាម្តងនៅក្នុងស្ថានីយពីចម្ងាយដំបូង បន្ទាប់ពី shell ចាប់ផ្តើម |
-p, --port | ច្រក SSH (លំនាំដើម 22) |
-i, --identity | ផ្លូវទៅកាន់ឯកសារអត្តសញ្ញាណ |
-o, --ssh-option | ឆ្លងកាត់ជម្រើស SSH បំពាន (ឧ. -o StrictHostKeyChecking=no) |
--transport | មធ្យោបាយស្ថានីយអន្តរកម្ម៖ ssh (លំនាំដើម) ឬ mosh |
--no-focus | បង្កើតកន្លែងធ្វើការដោយមិនចាំបាច់ប្តូរទៅវា។ |
#មធ្យោបាយស្ថានីយ Mosh
ប្រើ cmux ssh user@remote --transport mosh នៅពេលស្ថានីយអន្តរកម្មត្រូវបន្តដំណើរការពេលប្តូរ Wi-Fi, VPN, hotspot ឬពេលដេកនិងភ្ញាក់។ Mosh ដឹកតែ PTY របស់ស្ថានីយប៉ុណ្ណោះ ខណៈ SSH នៅតែគ្រប់គ្រងទិន្នន័យពីចម្ងាយ ការរៀបចំនិងគ្រប់គ្រងសេវា cmux ប្រូកស៊ីកម្មវិធីរុករក ការផ្ទុកឡើង និងការតភ្ជាប់ឡើងវិញ។
cmux ត្រូវការ Mosh 1.4 ឬថ្មីជាងនេះនៅក្នុងម៉ាស៊ីន និងពិនិត្យ mosh-server ពីចម្ងាយមុនចាប់ផ្តើម។ បើ client បាត់ ឬមិនត្រូវគ្នា server បាត់ ឬការពិនិត្យពីចម្ងាយបរាជ័យ cmux នឹងពន្យល់មូលហេតុ ហើយបន្តតាម SSH។
បង្កើត Mosh workspace ដែលបង្កើត ឬភ្ជាប់ tmux session មានឈ្មោះ (លំនាំដើម៖ main)។ tmux profile ត្រូវបានរក្សាទុកពេល reconnect និង restore app session។ វាជា tmux terminal ដែល roam បាន មិនមែន native mirror របស់ cmux ssh-tmux ទេ។ --session <name> ជ្រើស session; flags ផ្សេងទៀតដូច cmux mosh។ បើគ្មាន Mosh profile ដដែលដំណើរការតាម SSH។
#តំណភ្ជាប់ជ្រៅ SSH
ប្រើតំណភ្ជាប់ជ្រៅ cmux SSH នៅពេលដែលគេហទំព័រ ឬឧបករណ៍ចង់ផ្តល់ប៊ូតុង Open in 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ប្រើ cmux.com fallback URL សម្រាប់ប៊ូតុងគេហទំព័រ។ វាបើកតំណដើម ហើយបង្ហាញការទាញយក ប្រសិនបើ 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 alias ។ |
user | អ្នកប្រើប្រាស់ SSH ស្រេចចិត្ត។ cmux ផ្សំវាជាមួយ host ជា 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 ឬ tagged dev builds។
តំណភ្ជាប់ខាងក្រៅមិនអាចឆ្លងកាត់ឯកសារអត្តសញ្ញាណ ជម្រើស ssh ឆៅ ពាក្យបញ្ជា ProxyCommand ឬច្បាប់បញ្ជូនបន្ត។ ដាក់សោ, ProxyJump, HostName និងជម្រើសកម្រិតខ្ពស់នៅក្នុង ~/.ssh/config ជំនួសវិញ។ cmux បង្ហាញការមើលពាក្យបញ្ជាជាមុន ហើយតម្រូវឱ្យអ្នកប្រើប្រាស់ជឿជាក់លើគោលដៅ SSH មុនពេលភ្ជាប់។
#ផ្ទាំងកម្មវិធីរុករក
ផ្ទាំងកម្មវិធីរុករកតាមអ៊ីនធឺណិតនៅក្នុងកន្លែងធ្វើការពីចម្ងាយបញ្ជូនចរាចរ HTTP និង WebSocket ទាំងអស់តាមរយៈបណ្តាញរបស់ម៉ាស៊ីនពីចម្ងាយ។ វាយ localhost:3000 ហើយអ្នកកំពុងមើលម៉ាស៊ីនមេ dev ដែលដំណើរការលើប្រអប់ពីចម្ងាយ។ គ្មានទង់ -L គ្មានការបញ្ជូនបន្តច្រកដោយដៃ។ កន្លែងធ្វើការពីចម្ងាយនីមួយៗទទួលបានកន្លែងផ្ទុកខូគីដាច់ដោយឡែក ដូច្នេះវគ្គត្រូវបានកំណត់ក្នុងការតភ្ជាប់នីមួយៗ។
#អូសហើយទម្លាក់
អូសរូបភាព ឬឯកសារទៅក្នុងស្ថានីយពីចម្ងាយ ហើយ cmux បង្ហោះវាតាមរយៈ scp តាមរយៈការតភ្ជាប់ SSH ដែលមានស្រាប់។ cmux រកឃើញដំណើរការ SSH ផ្ទៃខាងមុខដោយ TTY ហើយបញ្ជូនការបង្ហោះតាមរយៈ ControlMaster multiplexing ។
#ការជូនដំណឹង
ដំណើរការនៅលើម៉ាស៊ីនពីចម្ងាយអាចដំណើរការពាក្យបញ្ជា cmux ដែលប្រតិបត្តិលើ instance មូលដ្ឋានរបស់អ្នក។ នៅពេលដែលភ្នាក់ងារសរសេរកូដហៅ cmux ជូនដំណឹងនៅលើប្រអប់ពីចម្ងាយ ការជូនដំណឹងនឹងបង្ហាញនៅក្នុងរបារចំហៀងក្នុងតំបន់របស់អ្នក។ ចិញ្ចៀនពណ៌ខៀវភ្លឺនៅលើផ្ទាំងកន្លែងធ្វើការ។ Cmd + Shift + U លោតទៅវា។ ការជូនដំណឹងសារឥតបានការពីការតភ្ជាប់មិនប្រក្រតីត្រូវបានទប់ស្កាត់ជាមួយនឹងការចុះត្រជាក់ក្នុងមួយម៉ាស៊ីន។
#ភ្នាក់ងារសរសេរកូដលើ SSH
cmux claude-teams និង cmux omo ទាំងពីរដំណើរការនៅក្នុងវគ្គ SSH ។ ដេមិន Go relay នៅលើម៉ាស៊ីនពីចម្ងាយគ្រប់គ្រងការបកប្រែ tmux-compat ដូចគ្នាដែល Swift CLI ក្នុងស្រុកធ្វើ។ ភ្នាក់ងារមិត្តរួមក្រុមបង្កើតបានជា cmux ដើមបំបែកនៅលើម៉ាស៊ីនមូលដ្ឋានរបស់អ្នក ខណៈពេលដែលការគណនាដំណើរការនៅលើប្រអប់ពីចម្ងាយ។
# Inside an SSH session:
cmux claude-teams
cmux omo#ភ្ជាប់ឡើងវិញ
នៅពេលដែលការតភ្ជាប់ធ្លាក់ចុះ cmux ភ្ជាប់ឡើងវិញជាមួយនឹងការ backoff អិចស្ប៉ូណង់ស្យែល (3s, 6s, 12s, រហូតដល់ 60s)។ វគ្គពីចម្ងាយនៅតែបន្តកើតមាន ហើយ cmux ភ្ជាប់ម្តងទៀតនៅលើការភ្ជាប់ឡើងវិញ ដោយប្តូរទំហំជាមួយនឹងអត្ថន័យតូចបំផុតដែលឈ្នះអេក្រង់។ ជម្រើសរក្សាទុកលំនាំដើម (ServerAliveInterval=20, ServerAliveCountMax=2) ត្រូវបានចាក់ លុះត្រាតែការកំណត់របស់អ្នកកំណត់ពួកវារួចហើយ។
#ដេមិនបញ្ជូនត
នៅពេលភ្ជាប់ដំបូង cmux ស៊ើបអង្កេតម៉ាស៊ីនពីចម្ងាយ (unname -s, uname -m) ហើយបង្ហោះកំណែ cmuxd-remote binary ។ ប្រព័ន្ធគោលពីរនិយាយ JSON-RPC លើ stdio និងដោះស្រាយរឿងបីយ៉ាង៖
| លក្ខណៈ | របៀប |
|---|---|
| ប្រូកស៊ីចរាចរកម្មវិធីរុករក | SOCKS5 និង HTTP Connect នៅលើប៉ុស្តិ៍ stdio របស់ដេមិន |
| ការបញ្ជូនត CLI | ផ្លូវរូងក្រោមដី TCP បញ្ច្រាសជាមួយការផ្ទៀងផ្ទាត់ HMAC-SHA256 ដូច្នេះដំណើរការពីចម្ងាយអាចហៅពាក្យបញ្ជា cmux ក្នុងស្រុក |
| ការគ្រប់គ្រងសម័យ | បន្តវគ្គឆ្លងកាត់ការភ្ជាប់ឡើងវិញ សម្របសម្រួល PTY ផ្លាស់ប្តូរទំហំតាមឯកសារភ្ជាប់ជាច្រើន។ |
daemon binary ត្រូវបានរក្សាទុកនៅ ~/.cmux/bin/cmuxd-remote/<version>/<os>-<arch>/cmuxd-remote នៅលើម៉ាស៊ីនពីចម្ងាយ និងបានផ្ទៀងផ្ទាត់ប្រឆាំងនឹងការបង្ហាញ SHA-256 ដែលបានបង្កប់នៅក្នុងកម្មវិធី។