# OpenSSH 10.6 برای کلیدهای پساکوانتومی SSH CH-J Tools تنها زمانی می‌تواند نوع کلید پساکوانتومی `ssh-mldsa44-ed25519` را به سرور اضافه کند که سرور **OpenSSH 10.6 یا جدیدتر** را اجرا کند. OpenSSH 10.6 (۱۴ مهر ۱۴۰۵) نخستین نسخه‌ای است که شکل استانداردشدهٔ این نوع کلید را پشتیبانی می‌کند. نسخه‌های قدیمی‌تر آن را رد می‌کنند. برخی از آن‌ها، مانند 10.2p1 در Ubuntu 26.04، فقط گونهٔ آزمایشی `…@openssh.com` را می‌شناسند که CH-J Tools از آن استفاده نمی‌کند. در زمان نگارش این راهنما، Ubuntu و Debian نسخهٔ 10.6 را از طریق `apt` ارائه نمی‌کنند. این راهنما نسخهٔ رسمی **OpenSSH 10.6p2** (۱۴ آبان ۱۴۰۵، رفع آسیب‌پذیری دور زدن احراز هویت با گذرواژه در ساخت‌های 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" را نمایش می‌دهد و کلید را اضافه نمی‌کند.