/ الدليل / الملعب / mcp-ssh-manager
● مجتمع bvisible ⚡ فوري

mcp-ssh-manager

بواسطة bvisible · bvisible/mcp-ssh-manager

37 أداة SSH لإدارة أسراب خوادم Linux عبر Claude — تنفيذ وتحميل وتنزيل ونسخ احتياطي ومراقبة صحة — مع مصادقة مفتاح SSH والوكيل.

mcp-ssh-manager هي غلاف SSH للعقدة توفر 37 أداة لعمليات نمط DevOps عبر عدة خوادم بعيدة. بجانب عمليات exec/upload/download الأساسية، تضيف أدوات نسخ احتياطي ومراقبة صحة ومساعدات قاعدة بيانات مجهزة برأي. تكوين عبر .env أو TOML للمضيفين المسماة.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

ssh-manager.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ssh-manager": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-ssh-manager"
      ],
      "_inferred": true
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ssh-manager": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-ssh-manager"
      ],
      "_inferred": true
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ssh-manager": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-ssh-manager"
      ],
      "_inferred": true
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ssh-manager": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-ssh-manager"
      ],
      "_inferred": true
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ssh-manager",
      "command": "npx",
      "args": [
        "-y",
        "mcp-ssh-manager"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "ssh-manager": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mcp-ssh-manager"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add ssh-manager -- npx -y mcp-ssh-manager

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: mcp-ssh-manager

فحص سريع لأسراب خوادم VPS من الدردشة

👤 مديرو العمليات الفرادى، فرق SRE الصغيرة ⏱ ~15 min intermediate

متى تستخدمه: تدير 5-20 صندوق VPS وتحتاج إلى فحص سريع لهم.

المتطلبات الأساسية
  • مفتاح SSH في الوكيلssh-add ~/.ssh/id_ed25519
  • قائمة المضيفين المسماة — تكوين TOML مع الاسم → المضيف/المستخدم/مسار المفتاح
الخطوات
  1. تشغيل فحوصات الصحة بالتوازي
    لكل خادم في أسراب خادمي، قم بتشغيل: uptime و df -h و free -h والخطأ الأخير في journalctl. لخص أي شيء مثير للقلق.✓ تم النسخ
    → ملخص لكل مضيف + المشاكل المعلمة
  2. التعمق في المشاكل
    على الخادم X حيث القرص 95٪ ممتلئ، ابحث عن أكبر 10 مجلدات تحت /var.✓ تم النسخ
    → مخرجات du
  3. الإصلاح أو التصعيد
    هل من الآمن حذف /var/log/old-*.gz؟ أكد معي قبل التشغيل.✓ تم النسخ
    → الخطة + الانتظار للتأكيد

النتيجة: فحص سريع للأسراب في 5 دقائق.

المزالق
  • انتهاء المهلة الزمنية للأوامر استشارية — قد تترك أوامر معلقة عمليات قيد التشغيل — استخدم timeout 30 <cmd> بوضوح لأي شيء قد يتعطل

أخذ نسخة احتياطية واحدة من خادم بعيد

👤 مسؤولو المختبرات المنزلية، المطورون الفرادى ⏱ ~15 min intermediate

متى تستخدمه: تدرك أن VPS المهمة الخاصة بك ليس لديها نسخة احتياطية وتحتاج إلى واحدة الآن، يدويًا.

الخطوات
  1. تحديد أهداف النسخ الاحتياطي
    على الخادم 'homelab'، اسرد المجلدات تحت /home و /var التي يجب عليّ نسخها احتياطيًا. استبعد السجلات والذاكرة المؤقتة.✓ تم النسخ
    → قائمة الأهداف
  2. إنشاء وتنزيل الأرشيف
    Tar+gzip تلك إلى /tmp/backup-$(date +%F).tgz، ثم قم بالتنزيل إلى ~/Backups/.✓ تم النسخ
    → الأرشيف هبط محليًا

النتيجة: نسخة احتياطية اختيارية في محادثة واحدة.

المزالق
  • النسخ الاحتياطية الكبيرة تفجر /tmp البعيد — البث مباشرة: ssh host 'tar cz ...' > local.tgz (ترتيب عبر exec + download)
اجمعها مع: filesystem

نشر تطبيق صغير إلى VPS بدون مغادرة الدردشة

👤 المطورون الفرادى الذين يشحنون المشاريع الجانبية ⏱ ~10 min intermediate

متى تستخدمه: لا Coolify، لا Dokku — فقط VPS عارية والكود الخاص بك.

الخطوات
  1. تحميل الكود
    حمل المجلد ./dist/ إلى الخادم 'myvps' في /opt/myapp/، مع الحفاظ على الأذونات.✓ تم النسخ
    → اكتمل التحميل
  2. إعادة تشغيل الخدمة
    على myvps، sudo systemctl restart myapp ثم تحقق من الحالة. أرسل لي مخرجات الحالة.✓ تم النسخ
    → active (running) أو خطأ

النتيجة: النشر مكتمل في دقيقتين.

المزالق
  • كلمة مرور sudo مطلوبة — تكوين NOPASSWD للخدمة المحددة في /etc/sudoers.d/

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

ssh-manager + filesystem

تنزيل ملف بعيد + تحرير محليًا + تحميل للخلف

قم بتنزيل /etc/nginx/sites-enabled/example.conf، وتحرير لإضافة gzip_comp_level 6، وتحميل وإعادة تشغيل nginx.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
execute host, command, timeout?: int أي أمر shell بعيد free
upload host, local_path, remote_path إرسال ملف أو مجلد free
download host, remote_path, local_path سحب ملف من خادم free
sync host, local, remote, delete?: bool مزامنة مجلد بحجم ضخم عبر rsync free
health_check host نبض سريع free

التكلفة والحدود

تكلفة التشغيل

حصة API
لا شيء
الرموز لكل استدعاء
قد يكون مخرجات Exec ضخمة — | tail -50 هو صديقك
التكلفة المالية
مجاني، MIT
نصيحة
حد طويل المخرجات: cmd | head -100، لا تقرأ الملفات الكاملة أبدًا.

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: مفتاح SSH بأذونات بعيدة ضرورية فقط
تخزين بيانات الاعتماد: المفاتيح الخاصة في ~/.ssh؛ استخدم وكيل SSH للجمل المرور
نقل البيانات الخارجي: حركة المرور إلى الأجهزة التي تقوم بتكوينها
لا تمنح أبدًا: مفاتيح معادلة للجذر إلى وكيل يمكنه أيضًا الوصول إلى الإنترنت

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

Permission denied (publickey)

المفتاح ليس في الوكيل، أو ~/.ssh/authorized_keys البعيد خاطئ. ssh-add -l للتحقق.

تحقق: ssh -i key host 'echo ok' مباشرة أولاً
Command timeout but process still running remotely

لف الأمر مع timeout: execute('host', 'timeout 30 long-command').

تحقق: ssh في و `ps aux`
rsync needs sshpass

إما تثبيت sshpass محليًا أو التبديل إلى المصادقة بمفتاح SSH لهذا المضيف.

البدائل

mcp-ssh-manager مقابل البدائل

البديلمتى تستخدمهاالمقايضة
Raw ssh عبر Terminalأنت لا تستخدم LLM للعملياتيدوي، لكن مفهوم جيدًا
Ansibleتدير 50+ مضيف باستخدام playbooks قابلة للتكرارأثقل؛ العمليات المخصصة الموجهة بالدردشة ليست قوتها

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills