Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
authkeysync — 🔐 أداة سطر أوامر خفيفة الوزن مصممة لمزامنة مفاتيح SSH العامة من عناوين URL البعيدة إلى ملفات authorized_keys المحلية | Kitploit
أدوات/GitHubGitHub/eduardolat/authkeysync
المصادقة والترخيصأمن البنية التحتية السحابيةالبرمجة النصية والأتمتةتدقيق التكوينDevSecOpsالمصادقة
GitHubeduardolat/authkeysync

authkeysync

🔐 أداة سطر أوامر خفيفة الوزن مصممة لمزامنة مفاتيح SSH العامة من عناوين URL البعيدة إلى ملفات authorized_keys المحلية

عرض المستودع
28منذ 8 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

شعار AuthKeySync

AuthKeySync

قم بمزامنة مفاتيح SSH العامة تلقائيًا من عناوين URL البعيدة إلى خوادمك

CI Status Go Report Card Release Version License

📖 التوثيق الكامل

المشكلة

إدارة وصول SSH عبر خوادم متعددة أمر مرهق:

  • ينضم أعضاء الفريق أو يغادرون، وتحتاج إلى تحديث authorized_keys على كل خادم
  • يقوم المطوّرون بتدوير مفاتيح SSH الخاصة بهم، والآن لديك 20 خادمًا لتحديثها
  • أنت تستخدم البنية التحتية كرمز (Infrastructure as Code)، لكن إدارة مفاتيح SSH لا تزال يدوية
  • غالبًا ما تكون نصوص bash المنزلية لإدارة المفاتيح سيئة الكتابة أو غير آمنة أو تحتوي على أخطاء خفية قد تمنعك من الوصول إلى خوادمك
  • تريد استخدام مفاتيح GitHub/GitLab، لكن نسخها في كل مكان أمر شاق

الحل

AuthKeySync هو أداة سطر أوامر خفيفة تقوم بجلب مفاتيح SSH العامة من عناوين URL (GitHub، GitLab، أو واجهة برمجة التطبيقات الخاصة بك) ومزامنتها إلى خوادمك. إنها آمنة وموثوقة ومصممة للأتمتة.

root@kitploit:~
# /etc/authkeysync/config.yaml
users:
  - username: "deploy"
    sources:
      - url: "https://github.com/your-username.keys"
      - url: "https://github.com/another-username.keys"

شغّل authkeysync (يدويًا أو عبر cron)، وسيتم تحديث authorized_keys لديك. هذا كل شيء.

الميزات الرئيسية

  • ملف تنفيذي واحد: لا توجد تبعيات، فقط قم بالتنزيل والتشغيل
  • آمن افتراضيًا: يحافظ على المفاتيح المحلية الحالية، وينشئ نسخًا احتياطية، ويستخدم الكتابة الذرية
  • آمن ضد الفشل: إذا فشل أي مصدر، يتم إحباط التحديث لمنع الحظر
  • مصادر مرنة: GitHub أو GitLab أو أي عنوان URL يعيد مفاتيح SSH كنص عادي
  • دعم واجهات برمجة التطبيقات: طلبات POST مع ترويسات مخصصة لواجهات برمجة التطبيقات الموثقة
  • جاهز للبنية التحتية كرمز (IaC): عديم الحالة، وذو نتائج متطابقة عند التكرار، ومثالي لـ Ansible/Terraform/cloud-init
  • متعدد المنصات: يعمل على Linux و macOS (AMD64 و ARM64)

بدء الاستخدام السريع

1. التنزيل

احصل على أحدث ملف تنفيذي من صفحة الإصدارات:

root@kitploit:~
# Linux AMD64
curl -Lo authkeysync https://github.com/eduardolat/authkeysync/releases/latest/download/authkeysync-linux-amd64
chmod +x authkeysync
sudo mv authkeysync /usr/local/bin/

2. الإعداد

أنشئ ملف إعداد في /etc/authkeysync/config.yaml:

root@kitploit:~
policy:
  backup_enabled: true # Create backups before changes (default: true)
  backup_retention_count: 10 # Number of backups to keep (default: 10)
  preserve_local_keys: true # Keep keys not in remote sources (default: true)

users:
  - username: "root"
    sources:
      - url: "https://github.com/your-username.keys"

3. التشغيل

root@kitploit:~
# Test first with dry-run
sudo authkeysync --dry-run

# Apply changes
sudo authkeysync

4. الأتمتة

قم بإعداد وظيفة cron أو مؤقّت systemd للتشغيل الدوري:

root@kitploit:~
# Every 5 minutes (use --quiet to reduce log noise in cron)
echo "*/5 * * * * root /usr/local/bin/authkeysync --quiet" | sudo tee /etc/cron.d/authkeysync

خيارات الإعداد

السياسة (جميع الخيارات اختيارية)

المستخدمون (مطلوب)

الخيارالنوع

المصادر

مثال مع جميع الخيارات

root@kitploit:~
policy:
  backup_enabled: true
  backup_retention_count: 10
  preserve_local_keys: true

users:
  - username: "deploy"
    sources:
      # Simple GitHub keys
      - url: "https://github.com/your-username.keys"

      # Private API with authentication
      - url: "https://keys.yourcompany.com/api/keys"
        method: "POST"
        headers:
          Authorization: "Bearer your-secret-token"
          Content-Type: "application/json"
        body: '{"environment": "production"}'
        timeout_seconds: 5

خيارات سطر الأوامر

رموز الخروج

الرمزالمعنى
0نجاح: تمت معالجة جميع المستخدمين أو تخطيهم
1فشل: فشل مزامنة مستخدم واحد على الأقل

كيف يعمل

  1. الجلب: تنزيل مفاتيح SSH من عناوين URL المُعدّة
  2. التحليل: التحقق من المفاتيح وإزالة التكرارات عبر جميع المصادر
  3. الدمج: الاحتفاظ اختياريًا بالمفاتيح الموجودة محليًا فقط
  4. الكتابة: تحديث authorized_keys بشكل ذري مع الصلاحيات المناسبة
  5. النسخ الاحتياطي: إنشاء نسخ احتياطية بختم زمني قبل أي تغييرات

إذا فشل أي مصدر في الجلب، يقوم AuthKeySync بإحباط التحديث لهذا المستخدم لمنع الحظر. يبقى وصولك الحالي سليمًا كما هو دون تغيير.

ادعم المشروع

إذا وجدت AuthKeySync مفيدًا، يرجى التفكير في منحه نجمة على GitHub ومتابعتي على X (تويتر) للاطلاع على التحديثات:

  • منح نجمة على GitHub
  • متابعة @eduardoolat على X

الترخيص

رخصة MIT. راجع LICENSE للتفاصيل.

تنزيل الأداة
الخيارالنوعالافتراضيالوصف
backup_enabledbooltrueإنشاء نسخ احتياطية قبل تعديل authorized_keys
backup_retention_countint10عدد ملفات النسخ الاحتياطي التي سيتم الاحتفاظ بها لكل مستخدم
preserve_local_keysbooltrueالاحتفاظ بالمفاتيح الحالية غير الموجودة في المصادر البعيدة
مطلوب
الوصف
usernamestringنعماسم مستخدم النظام (مثل: root، deploy)
sourcesقائمةنعمقائمة مصادر المفاتيح
الخيارالنوعالافتراضيالوصف
urlstring(مطلوب)عنوان URL يعيد مفاتيح SSH كنص عادي
methodstringGETطريقة HTTP: GET أو POST
headersmap{}ترويسات HTTP مخصصة (مثل: للمصادقة)
bodystring""نص الطلب لطلبات POST
timeout_secondsint10مهلة الطلب بالثواني
الخيارالوصف
--config <path>مسار ملف الإعداد (الافتراضي: /etc/authkeysync/config.yaml)
--dry-runمحاكاة المزامنة دون تعديل أي ملفات
--debugتفعيل تسجيل التصحيح (الأكثر تفصيلاً)
--quietإظهار التحذيرات والأخطاء فقط (موصى به لـ cron)
--silentإظهار الأخطاء فقط (الأكثر هدوءًا)
--versionعرض معلومات الإصدار والخروج
--helpعرض رسالة المساعدة