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

لوحة التحكم، طرفية متعددة الجلسات، مراقب المضيف، جزء منقسم، لوحة الأوامر، متصفح الملفات، وإعادة توجيه المنافذ في تدفق واحد.
ESSH تدعم حالياً بناءات macOS و Linux فقط.
cargo install essh
git clone https://github.com/matthart1983/essh.git
cd essh
cargo build --release
./target/release/essh
Windows ليس هدف بناء محلي مدعوماً في هذا الوقت.
# Launch the dashboard
essh
# Direct connect
essh connect user@host
# Use a specific key
essh connect user@host -i ~/.ssh/id_ed25519
# Use an encrypted key (ESSH will prompt for the passphrase)
essh connect user@host -i ~/.ssh/id_ed25519_encrypted
# Pull hosts from your existing SSH config
essh hosts import
# Run a command across a tagged group
essh run web-servers -- uptime
عند الإطلاق الأول، ينشئ ESSH المجلد ~/.essh/ ويعطيك إعدادات عاملة، ذاكرة تخزين مؤقت SQLite للمضيفين، دليل تشخيصات، ومسار سجل تدقيق.
┌─ ESSH ── [1] web-prod [2] db-primary [3] staging ───────────────┐
│ deploy@web-prod:~$ │
│ │
│ journalctl -u api -f │
│ │
├───────────────────────────────────────────────────────────────────┤
│ RTT 12.3ms ↑1.2KB/s ↓48.5KB/s Loss 0.0% ● Excellent │
├───────────────────────────────────────────────────────────────────┤
│ CPU 23% ▁▂▃▄▅▆▅▃▂▁ MEM 40% ████████████████░░░░░░░░░ │
│ LOAD 0.82 0.64 0.55 NET RX 48.5KB/s TX 1.2KB/s │
│ DISK / 62% Top: node, nginx, postgres │
└───────────────────────────────────────────────────────────────────┘
الفكرة بسيطة: دقة الطرفية عندما تحتاج قشرة، وإشارة تشغيلية عندما تحتاج سياقاً.
Alt+1-9 و Alt+←/→ و Alt+Tab.Alt+s.~/.ssh/config.strict و prompt و auto.essh hosts import
يدعم ESSH المفاتيح الخاصة المحمية بكلمة مرور لكل من اتصالات CLI المباشرة وواجهة TUI.
# One-off CLI connection with an encrypted key
essh connect user@host -i ~/.ssh/id_ed25519_encrypted
# Add an encrypted key to the local key cache
essh keys add ~/.ssh/id_ed25519_encrypted --name laptop-key
ما يمكن توقعه:
ssh-agent يعمل.[[hosts]]
name = "web-prod-1"
hostname = "10.0.1.10"
user = "deploy"
key = "~/.ssh/id_ed25519"
[hosts.tags]
env = "production"
role = "web"
[[host_groups]]
name = "web-servers"
[host_groups.match_tags]
role = "web"
essh run web-servers -- sudo systemctl status nginx
essh session list
essh session replay <session-id>
يأتي ESSH مع نفس مجموعة السمات المدمجة مثل NetWatch: dark و light و solarized و dracula و nord.
استخدم t في عروض أسلوب لوحة التحكم أو Alt+t من أي جلسة لتبديل السمات فوراً. تُحفظ السمة المختارة في ~/.essh/config.toml على النحو التالي:
theme = "dark"
essh # launch dashboard
essh connect user@host # direct SSH session
essh hosts list # list cached hosts
essh hosts import # import from ~/.ssh/config
essh keys list # list cached keys
essh diag <session-id> # inspect diagnostics
essh session list # list recordings
essh session replay <session-id> # replay a recording
essh audit tail --lines 20 # inspect recent audit events
essh config show # print active config
يخزن ESSH حالته في ~/.essh/.
~/.essh/
├── config.toml # main configuration
├── cache.db # host and key cache
├── audit.log # structured audit trail
├── sessions/ # per-session diagnostics logs
├── recordings/ # asciicast recordings
└── known_cas/ # trusted certificate authorities
الأوامر المفيدة:
essh config init
essh config edit
essh config show
إذا كنت تريد الإعدادات الكاملة ومواصفات الهندسة، انظر SPEC.md.
strict أو prompt أو auto.بني ESSH لمنح المشغلين مزيداً من الرؤية دون إخفاء ما تفعله الأداة نيابة عنهم.
cargo build
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --check
تشغل GitHub Actions نفس الفحوصات الأساسية على الدفعات وطلبات السحب إلى main.
المساهمات مرحب بها.
cargo test و cargo clippy --all-targets --all-features -- -D warnings و cargo fmt --check.MIT. انظر LICENSE.
ESSH هو SSH أصلي للطرفية مع طموح أكبر قليلاً.
| الركن | ما تحصل عليه |
|---|
| سير عمل يعتمد على الأسطول أولاً | تصفح المضيفين، فلتر حسب الوسم، تنقل بين الجلسات، وأرسل الأوامر عبر المجموعات من مكان واحد. |
| وعي حي بالجهاز | مراقب مضيف مدمج يظهر CPU، الذاكرة، القرص، الحمل، إنتاجية الشبكة، وأهم العمليات في الوقت الفعلي. |
| عمق تشغيلي | إعادة توجيه المنافذ، نقل الملفات، مضيفات القفز، الإشعارات، التسجيلات، إعادة الاتصال، وسجلات التدقيق كلها جزء من المنتج، لا تُضاف لاحقاً. |
| كومة Rust نقية | مبني على russh و ratatui و vt100 دون اعتماد على واجهة OpenSSH. |
| المفتاح | الإجراء |
|---|
? / Alt+h | تراكب المساعدة |
Alt+1 - Alt+9 | الانتقال إلى جلسة |
Alt+← / Alt+→ | التنقل بين الجلسات |
Alt+Tab | آخر جلسة مستخدمة |
Ctrl+p | لوحة الأوامر |
Alt+t | تبديل السمة |
Alt+d | الانفصال إلى لوحة التحكم |
Alt+w | إغلاق الجلسة |
| المفتاح | الإجراء |
|---|
Alt+m | مراقب المضيف |
Alt+s | جزء منقسم |
Alt+[ / Alt+] | تغيير حجم الجزء |
Alt+f | متصفح الملفات |
Alt+p | إعادة توجيه المنافذ |
Alt+r | إعادة تسمية التبويب |
| المفتاح | الإجراء |
|---|
1 - 4 | تبديل التبويبات |
j / k / ↑ / ↓ | التنقل بين المضيفين |
Enter | الاتصال |
/ | فلتر حي |
a | إضافة مضيف |
d | حذف مضيف |
r | تحديث |
t | تبديل السمة |