#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 នៅពេលដែលគេហទំព័រ ឬឧបករណ៍ចង់ផ្តល់ប៊ូតុង 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 ដែលបានបង្កប់នៅក្នុងកម្មវិធី។