# पोस्ट-क्वांटम 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" दिखाता है और कुंजी नहीं जोड़ता।