# پوسٹ کوانٹم SSH کلیدوں کے لیے OpenSSH 10.6 CH-J Tools کسی سرور پر پوسٹ کوانٹم کلید کی قسم `ssh-mldsa44-ed25519` صرف اسی وقت شامل کر سکتا ہے جب اس سرور پر **OpenSSH 10.6 یا اس سے نیا ورژن** چل رہا ہو۔ OpenSSH 10.6 (6 اکتوبر 2026) اس کلید کی قسم کی معیاری شکل والا پہلا اجرا ہے۔ پرانے اجرا اسے مسترد کر دیتے ہیں۔ ان میں سے کچھ، مثلاً Ubuntu 26.04 میں 10.2p1، صرف تجرباتی `…@openssh.com` شکل کو پہچانتے ہیں، جسے CH-J Tools استعمال نہیں کرتا۔ یہ رہنما لکھے جانے کے وقت Ubuntu اور Debian، `apt` کے ذریعے 10.6 فراہم نہیں کرتے۔ یہ رہنما تقسیم کے پیکیج کے ساتھ سرکاری **OpenSSH 10.6p2** (5 نومبر 2026، PAM کے بغیر Linux بلڈز میں پاس ورڈ سے توثیق کو بائی پاس کرنے کی خامی درست کرتا ہے) نصب کرتا ہے اور `ssh` سروس کو اسے استعمال کرنے کے لیے ترتیب دیتا ہے۔ Ubuntu 26.04.1 LTS کی صاف تنصیب پر جانچ کی گئی: تنصیب، `ssh-mldsa44-ed25519` کلید سے لاگ اِن، ری بوٹ اور سابقہ حالت کی بحالی۔ ## شروع کرنے سے پہلے - **اس بلڈ کی دیکھ بھال آپ کو خود کرنی ہوگی۔** `apt upgrade` اس کے لیے حفاظتی اصلاحات فراہم نہیں کرے گا۔ [OpenSSH کے ریلیز نوٹس](https://www.openssh.com/releasenotes.html) پر نظر رکھیں اور نئے اجرا کے ساتھ یہ طریقۂ کار دہرائیں، یا سابقہ حالت بحال کریں۔ - پورے طریقۂ کار کے دوران **دوسرا SSH سیشن کھلا رکھیں**۔ بہتر یہ ہے کہ آپ کو کنسول تک بھی رسائی حاصل ہو (ہائپروائزر، IPMI، کلاؤڈ کنسول)۔ - پہلے اسے کسی آزمائشی مشین پر آزمائیں۔ - آپ کو root اختیارات، systemd، `/var/tmp` میں تقریباً 1 GiB خالی جگہ اور `apt` اور OpenSSH ڈاؤن لوڈ کرنے کے لیے انٹرنیٹ تک رسائی درکار ہے۔ ## اسکرپٹ کیا کرتا ہے 1. `apt` کے ذریعے بلڈ کے لیے درکار پیکیجز نصب کرتا ہے۔ 2. `openssh-10.6p2.tar.gz` ڈاؤن لوڈ کرتا ہے۔ پہلے سے مقرر کردہ SHA-256 اور OpenSSH کے اجرا کی کلید `7168 B983 815A 5EEF 59A4 ADFD 2A3F 414E 7360 60BA` سے بنائے گئے OpenPGP دستخط کی تصدیق کرتا ہے۔ 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** میں آپ Keychain سے `ssh-mldsa44-ed25519` کلید شامل کر سکتے ہیں۔ اگر سرور اب بھی پرانا ورژن بتاتا ہے تو CH-J Tools پیغام "OpenSSH 10.6 or newer is required" دکھاتا ہے اور کلید شامل نہیں کرتا۔