
عميل SSH محسّن مع واجهة مستخدم نصية (TUI) — إدارة الاتصالات والمفاتيح والجلسات
███████╗███████╗███████╗██╗ ██╗
██╔════╝██╔════╝██╔════╝██║ ██║
█████╗ ███████╗███████╗███████║
██╔══╝ ╚════██║╚════██║██╔══██║
███████╗███████║███████║██║ ██║
╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
SSH محسّن لأصحاب الأساطيل
عميل SSH نقي بلغة Rust مع واجهة TUI كثيفة بأسلوب Netwatch. جلسات متعددة، مقاييس حيّة للمضيفين، وتباين على مستوى الأسطول — دون مغادرة الطرفية.

cargo install essh
أو حمّل ملفًا ثنائيًا لنظام macOS أو Linux، بمعمارية arm64 أو x86_64، من Releases.
من المصدر:
git clone https://github.com/matthart1983/essh && cd essh
cargo build --release # ./target/release/essh
essh # مشغّل: اكتب للبحث، Enter للاتصال
essh connect deploy@web-01 # مباشرة إلى مضيف
essh workspace open prod # استعادة مجموعة محفوظة من الجلسات
essh run web -- uptime # بثّ أمر عبر مجموعة موسومة
تأتي المضيفات من ~/.ssh/config — بما في ذلك IdentityFile وProxyJump و
Match — فلا حاجة لاستيراد أي شيء قبل البدء.
كل شيء شائع هو ضغطة مفتاح واحدة. تحتفظ الصدفة بكل تركيبات Ctrl،
لذا يبقى Ctrl+D يعني EOF وCtrl+C يبقى للمقاطعة.
F1 مساعدة | F2 مراقب | F3 ملفات | F4 إعادة توجيه المنافذ |
F5 مراقب مصغّر | F6 فصل | F7/F8 الجلسة السابقة/التالية | F9 جلسة جديدة |
F10 قائمة الأوامر |
على macOS، هذا الصف هو السطوع ومستوى الصوت افتراضيًا — F10 يكتم الصوت.
إمّا اضغط fn معها، أو فعّل مرة واحدة System Settings → Keyboard → Use F1, F2,
etc. as standard function keys. مسار البادئة أدناه لا يحتاج لأيٍّ منهما ويعمل في كل مكان.
لأي شيء آخر، اضغط Ctrl+A، ثم اتركه، ثم المفتاح — s تقسيم، w إغلاق،
t سمة، 1–9 انتقال إلى جلسة، [/] تغيير الحجم. الشريط أسفل
الجلسة يعرض المفاتيح المنطبقة الآن، فلا شيء لحفظه. غيّر البادئة عبر prefix_key تحت [session].
تركيبات Option/Alt تعمل على لوحة التحكم والشاشات الأخرى، لكن
ليس بينما تملك الصدفة التركيز — هناك يمتلك essh مفتاحًا واحدًا بالضبط، وهو البادئة،
ويُمرّر كل شيء آخر، لذا يبقى Alt+f هو forward-word في readline و
Alt+. يبقى yank-last-argument. داخل الجلسة تكون مفاتيح الوظائف أو البادئة.
| جلسات متعددة | تبويبات وتقسيمات في نافذة واحدة، مع تمرير خلفي وإعادة اتصال لكل جلسة. |
| مراقب مضيف حيّ | CPU والذاكرة والقرص والشبكة وأعلى العمليات، تُؤخذ عيّناتها في الخلفية ليكون العرض جاهزًا عند فتحه. لا وكيل — قنوات تنفيذ SSH عادية. |
| التباين | يقارن كل مضيف بمجموعة نظرائه ويخبرك أي مضيف يختلف، وعلى أي جانب، ولماذا. |
| نقل الملفات | متصفح محلي/بعيد بلوحتين عبر SFTP. |
| إعادة توجيه المنافذ | إضافة وإزالة وفحص عمليات إعادة التوجيه دون إسقاط الجلسة. |
| التدقيق وإعادة التشغيل | سجل تدقيق JSON منظم؛ تسجَّل الجلسات بصيغة asciicast لإعادة التشغيل. |
أربعون خادم ويب، تسعة وثلاثون سليمة، وواحد بنواة مختلفة أو
nginx.conf معدّل يدويًا. عمود من النقاط الخضراء لا يمكنه بنيويًا أن يُريك ذلك.
يجمع ESSH المضيفات في مجموعات نظراء حسب الوسم، ويجمع الحقائق نفسها من كلٍّ منها، ويقيّم كل مضيف مقابل إجماع المجموعة:
100.0% من 16 فحصًا جانبيًا متوافقة
0 جوانب تتباين عبر 0 مضيفات.
مضيفان لم يُفحصا قط، لذا جوانبهما غير معروفة بدلًا من كونها متوافقة.
شاشة Fleet تسمّي المضيف الشاذ والجوانب وراء الادعاء، لذا يكون الحكم قابلًا للتحقق لا مجرد تأكيد. الحقائق التي لا يمكن جمعها تُبلَّغ كغير مجمّعة — لا كتوافق أبدًا.
ثمانٍ، تُبدَّل بـ t (وAlt+t داخل الجلسة، حيث t تخص الصدفة)،
وتُحفظ في الإعدادات:
dark (افتراضي) · terminal · light · solarized · dracula · nord · ocean · sky
terminal لا يثبّت أي ألوان خاصة به — كل خانة تُحل إلى إدخال ANSI و
الخلفية والمقدمة تستخدمان ألوان طرفيتك الخاصة، فيمرّ pywal أو matugen أو
ملف طرفية مباشرة. sky وlight يرسمان أرضيتهما الخاصة؛ ocean يستخدم أرضية طرفيتك مع لوحة ثابتة فوقها.
أو انتقل مباشرة إلى واحدة من قائمة الأوامر — F10، أو Ctrl+P خارج
الجلسة — واكتب اسمها.
essh --theme terminal # يقبل أيضًا: system, ansi
essh --theme dracula hosts list
العلم يُطبَّق لتشغيل واحد ولا يُكتب مرة أخرى، لذا فهو طريقة لتجربة واحدة
دون التزام. t في TUI يغيّرها ويحفظ.
توجد الحالة في ~/.essh/: config.toml، cache.db، audit.log،
sessions/، recordings/، known_cas/.
essh config init # كتابة إعداد افتراضي
essh config edit # فتحه في $EDITOR
essh config resolve web-01 # إظهار كيف يحل ssh_config مضيفًا
تُتحقق مفاتيح المضيفين وتُخزَّن مؤقتًا، مع سياسة TOFU قابلة للضبط
(strict، prompt، auto). يمكن تقييد خوارزميات التشفير و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> # تشخيصات لجلسة سابقة
essh why <host> # شرح لماذا لن يتصل مضيف
essh audit tail --lines 20
essh bench # أرقام أداء منشورة
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --check
CI يشغّل الثلاثة عند كل push.
tests/tui_harness.rs يقود الثنائي الفعلي على PTY ويؤكد على شاشة طرفية
مُحلَّلة بموعد نهائي، لأن الإخفاقات المهمة في TUI هي
غياب إطار لا وجود إطار خاطئ. الاختبارات التي تحتاج SSH تتخطى
نفسها عندما لا يكون أي مضيف قابلًا للوصول.
انسخ (Fork)، أنشئ فرعًا، نفّذ التغيير، شغّل الفحوصات الثلاثة أعلاه، افتح PR.
MIT. انظر LICENSE.