# পোস্ট-কোয়ান্টাম SSH কী-এর জন্য OpenSSH 10.6 CH-J Tools কোনো সার্ভারে পোস্ট-কোয়ান্টাম কী-এর ধরন `ssh-mldsa44-ed25519` যোগ করতে পারে, কেবল যদি সেই সার্ভারে **OpenSSH 10.6 বা পরবর্তী সংস্করণ** চলে। OpenSSH 10.6 (৬ অক্টোবর ২০২৬) এই কী-এর ধরনের প্রমিত রূপ সমর্থনকারী প্রথম সংস্করণ। পুরোনো সংস্করণগুলো এটি প্রত্যাখ্যান করে। সেগুলোর মধ্যে কিছু, যেমন Ubuntu 26.04-এর 10.2p1, কেবল পরীক্ষামূলক `…@openssh.com` ভ্যারিয়্যান্ট চেনে, যা CH-J Tools ব্যবহার করে না। এই নির্দেশিকা লেখার সময় পর্যন্ত Ubuntu ও Debian `apt`-এর মাধ্যমে 10.6 সরবরাহ করে না। এই নির্দেশিকা ডিস্ট্রিবিউশনের প্যাকেজের পাশাপাশি আনুষ্ঠানিক **OpenSSH 10.6p2** (৫ নভেম্বর ২০২৬, 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" বার্তা দেখায় এবং কী যোগ করে না।