CH-J Tools สามารถเพิ่มคีย์ประเภท ssh-mldsa44-ed25519 ซึ่งเป็นคีย์แบบหลังควอนตัมลงในเซิร์ฟเวอร์ได้ก็ต่อเมื่อเซิร์ฟเวอร์นั้นใช้ OpenSSH 10.6 หรือใหม่กว่า โดย OpenSSH 10.6 (6 ตุลาคม ค.ศ. 2026) เป็นรุ่นแรกที่รองรับรูปแบบมาตรฐานของคีย์ประเภทนี้ รุ่นเก่าจะปฏิเสธคีย์ดังกล่าว บางรุ่น เช่น 10.2p1 ใน Ubuntu 26.04 รองรับเพียงรูปแบบทดลอง …@openssh.com ซึ่ง CH-J Tools ไม่ได้ใช้
ณ เวลาที่เขียนคู่มือนี้ Ubuntu และ Debian ยังไม่มีรุ่น 10.6 ให้ติดตั้งผ่าน apt คู่มือนี้จะติดตั้ง OpenSSH 10.6p2 รุ่นทางการ (5 พฤศจิกายน ค.ศ. 2026 แก้ไขช่องโหว่การข้ามการยืนยันตัวตนด้วยรหัสผ่านในบิลด์สำหรับ 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 จากคีย์เผยแพร่รุ่นของ OpenSSH7168 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" และจะไม่เพิ่มคีย์