المصادقة
يدعم DR-Terminal ثلاث طرق للمصادقة: كلمة المرور، والمفتاح الخاص، ومفتاح أمان FIDO2 (YubiKey).
كلمة المرور
أبسط الطرق. كلمة المرور المُدخلة على اتصال محفوظ تُخزَّن في المخزن الآمن للمنصة — وليس أبدًا في إعداد JSON. إذا كان حقل كلمة المرور فارغًا فإن التطبيق يسأل في كل مرة تتصل فيها.
الرجوع من المفتاح العام إلى كلمة المرور: عندما يرفض الخادم مفتاحًا عامًّا (مثلًا لأنه غير موجود في authorized_keys)، يطلب DR-Terminal تلقائيًا كلمة المرور للمستخدم نفسه بدلًا من قطع الاتصال.
المفتاح الخاص
تُقبل المفاتيح بتنسيق OpenSSH أو PKCS#1 أو PKCS#8 أو ssh.com أو PuTTY PPK (v2/v3) — ويُكتشف التنسيق تلقائيًا، لذا يعمل مفتاح .ppk دون تحويله أولًا. يمكنك:
- لصق المفتاح مباشرة في نموذج الاتصال.
- استخدام مدير المفاتيح (الإعدادات → الأمان → مفاتيح SSH) واختيار مفتاح مخزَّن. كما يمكن أن تكون ملفات المفاتيح المستوردة هنا بصيغة DER ثنائية خام.
إذا كان المفتاح مشفَّرًا بعبارة مرور، فإن DR-Terminal يطلبها أول مرة يُستخدم فيها المفتاح ثم يحتفظ بها في الذاكرة فقط — مثل ssh-agent، إلغاء قفل واحد لكل تشغيل للتطبيق؛ وإغلاق التطبيق يقفل كل المفاتيح من جديد. وتبقى المفاتيح المشفَّرة المستوردة بصورتها المشفَّرة الأصلية في المخزن الآمن. ندعم العديد من الخوارزميات — RSA وECDSA (P-256 وP-384 وP-521) وEd25519 وEd25519-SK وECDSA-SK (FIDO).
مولِّد المفاتيح
تحتوي الإعدادات → الأمان على معالج إنشاء مفتاح SSH. اختر النوع (مثل ed25519)، واضبط عبارة مرور (اختيارية — تحمي المفتاح حتى داخل المخزن الآمن)، ويُحفظ المفتاح محليًا. التعليق الافتراضي للمفتاح هو ${user}@${host}@DR-Terminal — مفيد لتمييز المفتاح على الخادم. يمكن نسخ المفتاح العام إلى الحافظة لإضافته إلى ~/.ssh/authorized_keys على الخادم.
يمكن إعادة تسمية المفاتيح في القائمة في مكانها؛ وإذا تعارض الاسم الذي تختاره مع اسم موجود، يُلحق التطبيق (2) تلقائيًا.
محوِّل المفاتيح
يعيد الإعدادات → الأمان → مفاتيح SSH → تحويل تسلسلَ مفتاح خاص بين كل التنسيقات الشائعة — اختر مصدرًا (مفتاحًا مخزَّنًا، أو ملفًا، أو نصًّا ملصوقًا) وتنسيقًا هدفًا، ثم انسخ النتيجة أو شاركها أو احفظها.
التنسيقات، في كلا الاتجاهين:
| التنسيق | قراءة | كتابة |
|---|---|---|
OpenSSH (BEGIN OPENSSH PRIVATE KEY) | ✓ | ✓ |
PKCS#8 (BEGIN PRIVATE KEY) | ✓ | ✓ |
PKCS#1 (BEGIN RSA PRIVATE KEY، RSA فقط) | ✓ | ✓ |
| PuTTY PPK — v2 وv3 | ✓ | ✓ |
يمكن أن يكون الإدخال PEM (نص)، أو PuTTY PPK، أو DER ثنائيًّا خامًا — ويُكتشف التنسيق تلقائيًا. أنواع المفاتيح: RSA وEd25519 وECDSA (P-256/384/521).
- تصدير PuTTY PPK يعمل الآن في كلا الاتجاهين (كان التطبيق سابقًا يستطيع قراءة
.ppkفقط). اختر v3 (Argon2id KDF + HMAC-SHA-256، PuTTY الحديث) أو v2 (PuTTY الأقدم) باستخدام محدد الإصدار. الملفات المُنتَجة بهذه الطريقة تُحمَّل في PuTTY/puttygenدون تغيير. - عبارة مرور تصدير اختيارية. اتركها فارغة للحصول على مفتاح غير مشفَّر؛ واضبطها فيُشفَّر الناتج بدالة اشتقاق مفاتيح قوية خاصة بكل تنسيق (bcrypt / PBKDF2 / Argon2id). راجع الأمان والبيانات → المفاتيح المُصدَّرة.
- إذا فشل التحويل (عبارة مرور مصدر خاطئة، أو تنسيق غير متوافق) فإن التطبيق يعرض الآن السبب الفعلي بدلًا من خطأ عام.
يصف PKCS#1 مفاتيح RSA فقط، لذا لا يُقدَّم ذلك الهدف إلا عندما يكون المصدر مفتاح RSA.
تحويل اتصال بكلمة مرور إلى مفتاح
لست مضطرًا إلى تحرير authorized_keys يدويًا. بالنسبة لاتصال محفوظ يستخدم كلمة مرور، يقدّم DR-Terminal ترقية موجَّهة في موضعين:
- قائمة الاتصالات — أيقونة المفتاح على بطاقة اتصال بكلمة مرور تبدأ معالج الترحيل.
- داخل جلسة — تحتوي قائمة الطرفية في جلسة متصلة بكلمة مرور على التبديل إلى مفتاح SSH.
يُنفِّذ كلاهما التدفق نفسه: اختر مفتاحًا مخزَّنًا أو أنشئ مفتاحًا جديدًا، ثم ينشر DR-Terminal المفتاح العام على الخادم عبر تسجيل الدخول بكلمة المرور القائم، ويختبر أن مصادقة المفتاح تعمل فعلًا، وعندها فقط يبدّل الاتصال المحفوظ إلى المصادقة بالمفتاح. وإذا فشل الاختبار، يُترك الاتصال دون تغيير.
مفتاح الأمان (FIDO2 / YubiKey)
يتعامل DR-Terminal مع مفاتيح ed25519-sk وecdsa-sk — ويمكنك إنشاؤها من داخل التطبيق. لا حاجة إلى ssh-keygen خارجي.
إنشاء مفتاح مدعوم بـ YubiKey في DR-Terminal
- الإعدادات → الأمان → مفاتيح SSH → إنشاء مفتاح SSH.
- فعِّل مفتاح التبديل مفتاح الأمان. اختر الخوارزمية — Ed25519-SK (موصى به) أو ECDSA-SK.
- المس YubiKey عندما يُطلب منك ذلك. يطلب التطبيق من الرمز المميز إنشاء بيانات اعتماد جديدة ويوقِّع المفتاح العام.
- يُخزَّن المفتاح في مدير المفاتيح بـ DR-Terminal. انسخ المفتاح العام والصقه في
~/.ssh/authorized_keysعلى الخادم الهدف.
Windows Hello: على نظام Windows تكون مطالبة رمز PIN لـ FIDO2 هي نافذة Windows Hello الأصلية (رمز PIN / بصمة الإصبع / الوجه)، وليست نافذة داخل التطبيق.
المفاتيح المقيمة (Resident) (المخزَّنة على YubiKey نفسه) تُغني عن الحاجة إلى حمل ملف المفتاح — يعيش السر بأكمله على الرمز المميز. أما المفاتيح المنشأة في DR-Terminal فهي غير مقيمة: يُحفظ معرِّف بيانات الاعتماد في مدير المفاتيح ويلزم مع الرمز المميز معًا.
استخدام مفتاح SK موجود
إذا كان لديك بالفعل مفتاح id_ed25519_sk / id_ecdsa_sk أنشأته في مكان آخر (مثلًا عبر ssh-keygen -t ed25519-sk)، فاستورده عبر مدير المفاتيح نفسه — يتعامل DR-Terminal مع مفاتيح SK المستوردة والمنشأة بالطريقة نفسها.
وقت الاتصال
يطلب DR-Terminal لمسة على مفتاحك. يومض المؤشر — انقره. يدعم iOS تقنية NFC وUSB-C (YubiKey 5Ci وما بعده). أما Android — فيدعم NFC + USB (OTG). ويستخدم سطح المكتب واجهات FIDO2 الأصلية (Windows Hello وmacOS وLinux عبر libfido2).