अपडेट पर वापस जाएँ
New releaseAug 22, 2026

essh v0.3.2

TUI के साथ उन्नत SSH क्लाइंट — कनेक्शन, कुंजियाँ और सत्र प्रबंधित करें

साझा करें

                         ███████╗███████╗███████╗██╗  ██╗
                         ██╔════╝██╔════╝██╔════╝██║  ██║
                         █████╗  ███████╗███████╗███████║
                         ██╔══╝  ╚════██║╚════██║██╔══██║
                         ███████╗███████║███████║██║  ██║
                         ╚══════╝╚══════╝╚══════╝╚═╝  ╚═╝
                           Enhanced SSH for people with fleets

crates.io CI License: MIT macOS Linux

एक शुद्ध-Rust SSH क्लाइंट जिसमें सघन, Netwatch-शैली का TUI है। एकाधिक सत्र, लाइव होस्ट मेट्रिक्स और fleet-व्यापी विचलन — बिना टर्मिनल छोड़े।

ESSH Demo

इंस्टॉल

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 अब भी इंटरप्ट करता है।

F1 सहायताF2 मॉनिटरF3 फ़ाइलेंF4 पोर्ट फ़ॉरवर्ड
F5 मिनी मॉनिटरF6 डिटैचF7/F8 पिछला/अगला सत्रF9 नया सत्र
F10 कमांड मेनू

बाकी सबके लिए, Ctrl+A दबाएँ, छोड़ दें, फिर कुंजी दबाएँ — s विभाजित करें, w बंद करें, t थीम, 19 सत्र पर जाएँ, [/] आकार बदलें। सत्र के निचले हिस्से में पट्टी उन कुंजियों को सूचीबद्ध करती है जो अभी लागू हैं, इसलिए कुछ भी याद रखने की आवश्यकता नहीं है। [session] के अंतर्गत prefix_key से प्रीफ़िक्स बदलें।

Option/Alt संयोजन भी तब काम करते हैं जब आपका टर्मिनल उन्हें Meta के रूप में भेजता है, लेकिन function keys को किसी कॉन्फ़िगरेशन की आवश्यकता नहीं होती और दोनों प्लेटफ़ॉर्म पर समान व्यवहार करती हैं।

यह क्या करता है

एकाधिक सत्रएक ही विंडो में टैब और स्प्लिट, प्रति-सत्र स्क्रॉलबैक और पुनः कनेक्ट के साथ।
लाइव होस्ट मॉनिटरCPU, मेमोरी, डिस्क, नेटवर्क और शीर्ष प्रक्रियाएँ, जिन्हें पृष्ठभूमि में सैंपल किया जाता है ताकि खोलते ही दृश्य तैयार हो। कोई agent नहीं — सादे SSH exec चैनल।
विचलनप्रत्येक होस्ट की तुलना उसके peer समूह से करता है और बताता है कि कौन-सा होस्ट भिन्न है, किस पहलू पर और क्यों।
फ़ाइल स्थानांतरणSFTP पर दो-पैनल स्थानीय/रिमोट ब्राउज़र।
पोर्ट फ़ॉरवर्डिंगसत्र बंद किए बिना फ़ॉरवर्ड जोड़ें, निरीक्षण करें और हटाएँ।
ऑडिट और रीप्लेसंरचित JSON ऑडिट लॉग; सत्र रीप्ले के लिए asciicast में रिकॉर्ड होते हैं।

विचलन

चालीस वेब सर्वर, उनतीस ठीक हैं, और एक में अलग कर्नेल या हाथ से संपादित 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

CLI

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

श्रेणियाँ