
TUI के साथ उन्नत SSH क्लाइंट — कनेक्शन, कुंजियाँ और सत्र प्रबंधित करें
███████╗███████╗███████╗██╗ ██╗
██╔════╝██╔════╝██╔════╝██║ ██║
█████╗ ███████╗███████╗███████║
██╔══╝ ╚════██║╚════██║██╔══██║
███████╗███████║███████║██║ ██║
╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
Enhanced SSH for people with fleets
एक शुद्ध-Rust SSH क्लाइंट जिसमें सघन, Netwatch-शैली का TUI है। एकाधिक सत्र, लाइव होस्ट मेट्रिक्स और fleet-व्यापी विचलन — बिना टर्मिनल छोड़े।

cargo install essh
या Releases से macOS या Linux, arm64 या x86_64 के लिए बाइनरी लें।
स्रोत से:
git clone https://github.com/matthart1983/essh && cd essh
cargo build --release # ./target/release/essh
essh # launcher: type to search, Enter to connect
essh connect deploy@web-01 # straight to a host
essh workspace open prod # restore a saved set of sessions
essh run web -- uptime # fan a command across a tagged group
होस्ट ~/.ssh/config से आते हैं — जिनमें IdentityFile, ProxyJump और Match शामिल हैं — इसलिए शुरू करने से पहले आयात करने के लिए कुछ नहीं है।
सामान्य क्रियाएँ एक ही keypress से होती हैं। शेल हर Ctrl संयोजन को बनाए रखता है, इसलिए Ctrl+D का अर्थ अब भी EOF है और Ctrl+C अब भी इंटरप्ट करता है।
बाकी सबके लिए, Ctrl+A दबाएँ, छोड़ दें, फिर कुंजी दबाएँ — s विभाजित करें, w बंद करें, t थीम, 1–9 सत्र पर जाएँ, [/] आकार बदलें। सत्र के निचले हिस्से में पट्टी उन कुंजियों को सूचीबद्ध करती है जो अभी लागू हैं, इसलिए कुछ भी याद रखने की आवश्यकता नहीं है। [session] के अंतर्गत prefix_key से प्रीफ़िक्स बदलें।
Option/Alt संयोजन भी तब काम करते हैं जब आपका टर्मिनल उन्हें Meta के रूप में भेजता है, लेकिन function keys को किसी कॉन्फ़िगरेशन की आवश्यकता नहीं होती और दोनों प्लेटफ़ॉर्म पर समान व्यवहार करती हैं।
चालीस वेब सर्वर, उनतीस ठीक हैं, और एक में अलग कर्नेल या हाथ से संपादित nginx.conf है। हरे बिंदुओं का एक कॉलम संरचनात्मक रूप से यह नहीं दिखा सकता।
ESSH होस्ट्स को टैग द्वारा peer समूहों में बाँटता है, प्रत्येक से समान तथ्य एकत्र करता है, और हर होस्ट को समूह की सर्वसम्मति के विरुद्ध स्कोर करता है:
100.0% of 16 facet-checks agree
0 facets diverge across 0 hosts.
2 hosts have never been probed, so their facets are unknown rather than in agreement.
Fleet स्क्रीन outlier का नाम और दावे के पीछे के facets बताती है, इसलिए निर्णय सत्यापन योग्य होता है, न कि केवल दावा। जो तथ्य वह एकत्र नहीं कर सकता, उन्हें uncollected के रूप में रिपोर्ट किया जाता है — कभी agreement के रूप में नहीं।
सारा स्टेट ~/.essh/ में रहता है: config.toml, cache.db, audit.log, sessions/, recordings/, known_cas/।
essh config init # write a default config
essh config edit # open it in $EDITOR
essh config resolve web-01 # show how ssh_config resolves a host
होस्ट कुंजियों को सत्यापित और कैश किया जाता है, एक कॉन्फ़िगर करने योग्य TOFU नीति (strict, prompt, auto) के साथ। Ciphers और KEX एल्गोरिदम को प्रतिबंधित किया जा सकता है।
पूर्ण कॉन्फ़िगरेशन और आर्किटेक्चर संदर्भ: SPEC.md।
essh hosts list | add | remove | import | health
essh keys list | add | remove
essh workspace list | open | save | show | remove
essh session list | replay <id>
essh diag <session-id> # diagnostics for a past session
essh why <host> # explain why a host will not connect
essh audit tail --lines 20
essh bench # published performance numbers
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --check
CI हर push पर तीनों चेक चलाता है।
tests/tui_harness.rs वास्तविक बाइनरी को PTY पर चलाता है और एक deadline के साथ पार्स की गई टर्मिनल स्क्रीन पर assert करता है, क्योंकि TUI में मायने रखने वाली विफलताएँ गलत फ्रेम नहीं, बल्कि फ्रेम की अनुपस्थिति होती हैं। जिन परीक्षणों को SSH की आवश्यकता होती है, वे जब कोई होस्ट पहुँच योग्य नहीं होता तो स्वयं को skip कर लेते हैं।
Fork करें, branch बनाएँ, बदलाव करें, ऊपर दिए तीन चेक चलाएँ और PR खोलें।
MIT. देखें LICENSE।
F1 सहायता | F2 मॉनिटर | F3 फ़ाइलें | F4 पोर्ट फ़ॉरवर्ड |
F5 मिनी मॉनिटर | F6 डिटैच | F7/F8 पिछला/अगला सत्र | F9 नया सत्र |
F10 कमांड मेनू |
| एकाधिक सत्र | एक ही विंडो में टैब और स्प्लिट, प्रति-सत्र स्क्रॉलबैक और पुनः कनेक्ट के साथ। |
| लाइव होस्ट मॉनिटर | CPU, मेमोरी, डिस्क, नेटवर्क और शीर्ष प्रक्रियाएँ, जिन्हें पृष्ठभूमि में सैंपल किया जाता है ताकि खोलते ही दृश्य तैयार हो। कोई agent नहीं — सादे SSH exec चैनल। |
| विचलन | प्रत्येक होस्ट की तुलना उसके peer समूह से करता है और बताता है कि कौन-सा होस्ट भिन्न है, किस पहलू पर और क्यों। |
| फ़ाइल स्थानांतरण | SFTP पर दो-पैनल स्थानीय/रिमोट ब्राउज़र। |
| पोर्ट फ़ॉरवर्डिंग | सत्र बंद किए बिना फ़ॉरवर्ड जोड़ें, निरीक्षण करें और हटाएँ। |
| ऑडिट और रीप्ले | संरचित JSON ऑडिट लॉग; सत्र रीप्ले के लिए asciicast में रिकॉर्ड होते हैं। |