इस प्रोजेक्ट के बारे में

Eternal Terminal (ET) एक रिमोट शेल क्लाइंट-सर्वर सिस्टम है जो नेटवर्क disruptions से बचता है। सामान्य SSH के विपरीत, जब कनेक्शन टूटता है, यह स्वचालित रूप से पुनः कनेक्ट होता है और सत्र को ठीक वहीं पुनर्स्थापित करता है जहाँ उपयोगकर्ता छोड़ा था — कोई interrupted commands या खोया आउटपुट नहीं। ### यह कैसे काम करता है ET तीन घटकों का उपयोग करता है: - **`et`** (क्लाइंट): स्थानीय मशीन पर चलता है। SSH के माध्यम से प्रमाणित होता है, फिर TCP पोर्ट 2022 पर स्थायी ET कनेक्शन पर स्विच करता है। - **`etserver`** (सर्वर डेमन): रिमोट होस्ट पर सिस्टम सेवा (आमतौर पर root-प्रबंधित) के रूप में चलता है। क्लाइंट कनेक्शन स्वीकार करता है और उन्हें सही उपयोगकर्ता सत्र में रूट करता है। - **`etterminal`** (सर्वर-साइड सहायक): `et` द्वारा SSH पर लॉन्च किया जाता है। वास्तविक टर्मिनल सत्र होस्ट करता है और FIFO के माध्यम से `etserver` के साथ पंजीकृत होता है। ### प्रमुख विशेषताएँ - **स्वचालित पुनः कनेक्शन**: नेटवर्क ब्लिप्स, WiFi संक्रमण, या VPN ड्रॉप्स आपके सत्र को नहीं मारते। - **SSH-आधारित प्रमाणीकरण**: सुरक्षित प्रमाणीकरण के लिए मौजूदा SSH कुंजियों और कॉन्फ़िग का लाभ उठाता है। - **पोर्ट फ़ॉरवर्डिंग**: स्थानीय और रिमोट पोर्ट फ़ॉरवर्डिंग के लिए `-t` फ़्लैग समर्थन करता है। - **जम्पहोस्ट समर्थन**: `--jumphost` और `--jport` के साथ मध्यवर्ती होस्ट के माध्यम से कनेक्ट करें। - **HTM मल्टीप्लेक्सर**: बंडल टर्मिनल मल्टीप्लेक्सर (`htm`) संगत टर्मिनल एमुलेटर में नेटिव विंडो, टैब और स्प्लिट्स का समर्थन करता है, tmux नियंत्रण मोड के साथ एकीकृत। - **कॉन्फ़िगरेबल**: सर्वर सेटिंग्स `/etc/et.cfg` में रहती हैं (पोर्ट, बाइंड पता, आदि)। ### स्थापना macOS (Homebrew, MacPorts), Ubuntu/Debian (PPA और आधिकारिक deb रेपो), Fedora, CentOS 8+, FreeBSD, openSUSE, और NixOS के लिए पूर्व-निर्मित पैकेज उपलब्ध हैं। Windows WSL के माध्यम से समर्थित है। Debian/Ubuntu, CentOS 7, और macOS के लिए स्रोत बिल्ड भी प्रलेखित हैं। ### उपयोग ```bash et hostname # डिफ़ॉल्ट पोर्ट 2022, वर्तमान उपयोगकर्ता et user@hostname:8000 # कस्टम पोर्ट et hostname --jumphost jump # जम्पहोस्ट के माध्यम से ``` ET उपयोगकर्ता-विशिष्ट और सिस्टम-व्यापी SSH कॉन्फ़िग फ़ाइलें दोनों पढ़ता है; परिवेश SSH कॉन्फ़िग से अलग करने के लिए `--ssh-config` को पूर्ण पथ के साथ पास करें, या इसे पूरी तरह अक्षम करने के लिए `--no-ssh-config`। ### प्रोटोकॉल दस्तावेज़ विस्तृत प्रोटोकॉल और HTM डिज़ाइन दस्तावेज़ीकरण रिपॉजिटरी में `docs/` के अंतर्गत उपलब्ध है।