# OpenSSH 10.6 لمفاتيح SSH ما بعد الكم يمكن لـ CH-J Tools إضافة نوع المفاتيح المقاوم للهجمات الكمومية `ssh-mldsa44-ed25519` إلى خادم فقط إذا كان الخادم يعمل بإصدار **OpenSSH 10.6 أو أحدث**. يُعد OpenSSH 10.6 (6 أكتوبر 2026) أول إصدار يدعم الصيغة المعيارية لهذا النوع من المفاتيح. ترفضه الإصدارات الأقدم. ولا تتعرف بعض هذه الإصدارات، مثل 10.2p1 في Ubuntu 26.04، إلا على صيغة تجريبية من نوع `…@openssh.com` لا تستخدمها CH-J Tools. حتى وقت كتابة هذا الدليل، لا توفر Ubuntu وDebian الإصدار 10.6 عبر `apt`. يثبّت هذا الدليل الإصدار الرسمي **OpenSSH 10.6p2** (5 نوفمبر 2026، يعالج ثغرة تتيح تجاوز المصادقة بكلمة المرور في نسخ Linux المبنية من دون PAM) إلى جانب حزمة التوزيعة، ويضبط خدمة `ssh` لاستخدامه. اختُبر على تثبيت نظيف لـ Ubuntu 26.04.1 LTS: التثبيت، وتسجيل الدخول بمفتاح `ssh-mldsa44-ed25519`، وإعادة التشغيل، والتراجع عن التغييرات. ## قبل البدء - **تقع مسؤولية صيانة هذه النسخة المبنية عليك.** لن يوفّر لها `apt upgrade` إصلاحات أمنية. تابع [ملاحظات إصدارات OpenSSH](https://www.openssh.com/releasenotes.html) وكرّر الإجراء بإصدار أحدث، أو تراجع عن التغييرات. - أبقِ **جلسة SSH ثانية مفتوحة** طوال الإجراء. والأفضل أن يتوفر لديك وصول إلى وحدة التحكم (عبر برنامج المحاكاة الافتراضية أو IPMI أو وحدة التحكم السحابية). - جرّب الإجراء على جهاز اختبار أولًا. - تحتاج إلى صلاحيات root وsystemd ونحو 1 GiB من المساحة الخالية في `/var/tmp` وإمكانية الوصول إلى الإنترنت لاستخدام `apt` وتنزيل OpenSSH. ## ما يفعله البرنامج النصي 1. يثبّت اعتماديات البناء باستخدام `apt`. 2. ينزّل `openssh-10.6p2.tar.gz`. ويتحقق من قيمة SHA-256 المثبّتة مسبقًا ومن توقيع OpenPGP باستخدام مفتاح إصدارات OpenSSH ذي البصمة `7168 B983 815A 5EEF 59A4 ADFD 2A3F 414E 7360 60BA`. 3. يبني البرنامج ويثبّته في `/opt/openssh-10.6p2`. وتبقى إعداداتك في `/etc/ssh` (مفاتيح المضيف و`sshd_config`) وإعدادات PAM من دون تغيير. 4. يتحقق من ملف `sshd_config` الحالي باستخدام الإصدار الجديد. ثم يشغّل مثيلًا اختباريًا على `127.0.0.1:2226`، ولا يجري أي تبديل ما لم ينجح كلا الفحصين. 5. يضيف ملف إعدادات systemd التكميلي `/etc/systemd/system/ssh.service.d/chj-openssh.conf` ويعطّل `ssh.socket`، لأن sshd الأصلي لا يدعم التنشيط عبر المقابس. ثم يعيد تشغيل `ssh.service`. 6. يتحقق من أن العملية قيد التشغيل هي `/opt/openssh-10.6p2/sbin/sshd` وأن نص التعريف هو `SSH-2.0-OpenSSH_10.6`. وإذا فشل أي من الفحصين، يتراجع عن التغييرات تلقائيًا. ## التثبيت ```bash curl -fsSLO https://tools.ch-j.de/files/tools/chj-openssh-10.6.sh echo "cdf3031a0b64db3e3bf3c83d31bd746aee5505757b1af5e137750326ed8d7a01 chj-openssh-10.6.sh" | sha256sum -c - less chj-openssh-10.6.sh # read it before running it as root sudo bash chj-openssh-10.6.sh install ``` بعد ذلك، افتح اتصال SSH **جديدًا**. لا تغلق الجلسة القديمة إلا بعد نجاح تسجيل الدخول الجديد. ## التحقق والتراجع عن التغييرات ```bash sudo bash chj-openssh-10.6.sh status # running binary, ssh.socket, banner sudo bash chj-openssh-10.6.sh rollback # back to the distribution sshd ``` يزيل التراجع ملف الإعدادات التكميلي، ويعيد تفعيل `ssh.socket` إذا كان مفعّلًا من قبل، ويعيد تشغيل `sshd` الخاص بالتوزيعة. وتبقى النسخة المبنية في `/opt/openssh-10.6p2` على القرص إلى أن تحذفها. وبعد التراجع، لن تعود مفاتيح `ssh-mldsa44-ed25519` تعمل على ذلك الخادم. ## الخطوة التالية في CH-J Tools اتصل بالخادم مجددًا. يمكنك الآن في **Users** إضافة مفتاح `ssh-mldsa44-ed25519` من Keychain. وإذا ظل الخادم يبلّغ عن إصدار أقدم، تعرض CH-J Tools الرسالة "OpenSSH 10.6 or newer is required" ولا تضيف المفتاح.