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 را دنبال کنید و این فرایند را با نسخهای جدیدتر تکرار کنید، یا تغییرات را بازگردانید. - در تمام مدت انجام این فرایند، یک نشست دوم SSH را باز نگه دارید. بهتر است به کنسول نیز دسترسی داشته باشید (هایپروایزر، IPMI، کنسول ابری).
- ابتدا آن را روی یک ماشین آزمایشی امتحان کنید.
- به دسترسی root، systemd، حدود 1 GiB فضای آزاد در
/var/tmpو اتصال اینترنت برایaptو دریافت OpenSSH نیاز دارید.
اسکریپت چه میکند
- وابستگیهای لازم برای ساخت را با
aptنصب میکند. - فایل
openssh-10.6p2.tar.gzرا دریافت میکند. مقدار ازپیشتعیینشدهٔ SHA-256 و امضای OpenPGP را با کلید انتشار OpenSSH با اثر انگشت7168 B983 815A 5EEF 59A4 ADFD 2A3F 414E 7360 60BAبررسی میکند. - برنامه را ساخته و در
/opt/openssh-10.6p2نصب میکند. تنظیمات شما در/etc/ssh(کلیدهای میزبان،sshd_config) و تنظیمات PAM بدون تغییر باقی میمانند. - فایل فعلی
sshd_configرا با نسخهٔ جدید بررسی میکند. سپس یک نمونهٔ آزمایشی روی127.0.0.1:2226اجرا میکند و تا زمانی که هر دو بررسی موفق نباشند، هیچ تغییری برای استفاده از نسخهٔ جدید اعمال نمیکند. - فایل تنظیمات تکمیلی systemd با مسیر
/etc/systemd/system/ssh.service.d/chj-openssh.confرا اضافه میکند وssh.socketرا غیرفعال میکند، زیرا sshd پروژهٔ اصلی از فعالسازی از طریق سوکت پشتیبانی نمیکند. سپسssh.serviceرا دوباره راهاندازی میکند. - بررسی میکند که فرایند در حال اجرا
/opt/openssh-10.6p2/sbin/sshdباشد و رشتهٔ شناساییSSH-2.0-OpenSSH_10.6را نشان دهد. اگر هرکدام از بررسیها ناموفق باشد، تغییرات را خودکار بازمیگرداند.
نصب
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 جدید باز کنید. نشست قبلی را تنها پس از موفقیت ورود از طریق اتصال جدید ببندید.
بررسی و بازگردانی
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" را نمایش میدهد و کلید را اضافه نمیکند.