
เกินกว่าป้ายเวอร์ชัน OpenSSH 10.1 รวมเส้นทางที่เริ่มต้นด้วยซีรีส์ 10: การโยกย้ายไปสู่การเข้ารหัสหลังควอนตัม การปรับปรุง QoS ให้ทันสมัยด้วย DSCP และการเพิ่มความแข็งแกร่งให้กับพื้นที่ที่มีความอ่อนไหวทางประวัติศาสตร์ (ตัวแทน คีย์ รีจิสทรี และการแยกวิเคราะห์พารามิเตอร์) ด้านล่างนี้คุณจะพบ การตรวจสอบคุณสมบัติใหม่ทั้งหมดอย่างละเอียด (พร้อมบริบทที่เพิ่มมูลค่า) รวมถึงแนวทางปฏิบัติในการนำไปใช้โดยไม่เกิดความประหลาดใจ
ต่อไปนี้เป็นรายการที่มี มีอะไรใหม่ในเวอร์ชันนี้, ยังมีจำหน่ายใน บันทึกอย่างเป็นทางการ.
ไฮไลท์และบริบทของการเปิดตัว
การเปิดตัวอย่างเป็นทางการของ OpenSSH 10.1 (6 ตุลาคม 2025) เน้นย้ำสามแกน: การป้องกันความปลอดภัยจากการเข้ารหัสควอนตัม เครือข่าย DSCP และการฆ่าเชื้ออินพุตนอกจากนี้ยังเชื่อมโยงการเปลี่ยนแปลงเฉพาะเจาะจงที่มีผลกระทบในการปฏิบัติงานสูง: จากเส้นทางซ็อกเก็ตตัวแทนไปยัง สัญญาณการวินิจฉัยใหม่.
ข้อเตือนใจสำคัญของโครงการ: การเปิดตัวในอนาคตจะละเว้นบันทึก SSHFP ที่ใช้ SHA‑1ในขณะที่ ssh-keygen -r ตอนนี้สร้างลายนิ้วมือ SSHFP ด้วย SHA‑256 ตามค่าเริ่มต้นเท่านั้น ปิดประตูสู่แฮชที่อ่อนแอ สำหรับการตรวจสอบ DNSSEC และคีย์โฮสต์
คำเตือนการเข้ารหัสที่ไม่ใช่โพสต์ควอนตัมและตัวเลือก WarnWeakCrypto ใหม่
OpenSSH 10.1 แนะนำคำเตือนเมื่อการเชื่อมต่อเจรจาการแลกเปลี่ยนคีย์ที่ ไม่ต้านทานการโจมตีหลังควอนตัมเป้าหมายคือการมุ่งเน้นไปที่ความเสี่ยงของ "เก็บข้อมูลตอนนี้ ถอดรหัสภายหลัง" และเร่งการเปลี่ยนแปลงในสภาพแวดล้อมที่มีความละเอียดอ่อน
พฤติกรรมนี้จะถูกควบคุมด้วย วอร์นวีคคริปโต (ตอน ssh_config) ซึ่งเปิดใช้งานตามค่าเริ่มต้น หากคุณกำลังทำการย้ายข้อมูลแบบค่อยเป็นค่อยไปหรือบำรุงรักษาโฮสต์เดิม คุณสามารถเลือกปิดการเตือนได้ ด้วยบล็อกจับคู่ ตัวอย่างเช่น:
จับคู่โฮสต์ unsafe.example.com WarnWeakCrypto ไม่
การเข้ารหัสและสถานะที่ทันสมัย: PQC, ไฮบริดและ SSHFP
ใน 10.0 ไคลเอนต์เปลี่ยนไปใช้ค่าเริ่มต้น mlkem768x25519‑sha256อัลกอริทึมโพสต์ควอนตัมแบบไฮบริดที่รวม เอ็มแอล-เคม (KEM NIST FIPS 203) กับ X25519 กลยุทธ์แบบผสมผสานนี้ช่วยให้มั่นใจได้ว่าแม้ว่าจะมีความก้าวหน้าทางการวิเคราะห์รหัสเกิดขึ้นที่ด้าน PQ คุณจะไม่แย่ไปกว่าการใช้ ECDH แบบคลาสสิก เพราะช่องยังคงความแข็งแกร่งของ X25519 ไว้
ด้วย 10.1 นอกเหนือจากคำเตือนที่อธิบายไว้ข้างต้น การเปลี่ยนแปลงยังได้รับการเสริมความแข็งแกร่งด้วย: OpenSSH จะยังคงละเว้น SSHFP ที่มี SHA‑1 ในอนาคต; เครื่องมือ ssh-keygen ออก SSHFP พร้อม SHA‑256 เฉพาะแล้ว ในทางปฏิบัติ การดำเนินการที่แนะนำคือ สร้างใหม่และเผยแพร่ลายนิ้วมือ SSHFP ใน SHA‑256 สำหรับโฮสต์ของคุณ
คำถามที่พบบ่อย: เหตุใดจึงต้องยืนกรานตอนนี้ หากคอมพิวเตอร์ควอนตัมยังไม่สามารถทำลาย SSH ได้? เพราะผู้โจมตีสามารถจับภาพวันนี้และถอดรหัสพรุ่งนี้ได้ การใช้ KEX หลังควอนตัมช่วยลดความเสี่ยงของเวกเตอร์นั้นได้ และหากคุณกังวลเกี่ยวกับความเยาว์วัยของอัลกอริทึม PQ โปรดจำไว้ว่า รูปแบบไฮบริด ยังคงรักษาระดับความปลอดภัยแบบคลาสสิกไว้เป็นฐาน
การปรับปรุงเครือข่าย: DSCP/IPQoS และการกำหนดลำดับความสำคัญของการรับส่งข้อมูล
การเปิดตัวครั้งนี้เป็นการยกระดับ QoS ครั้งใหญ่ ทั้งบนไคลเอนต์และเซิร์ฟเวอร์ การรับส่งข้อมูลแบบโต้ตอบค่าเริ่มต้นเป็นคลาส EF (การส่งต่อแบบเร่งด่วน)ซึ่งช่วยลดความหน่วงบน Wi-Fi และสื่อที่แออัด การรับส่งข้อมูลแบบไม่โต้ตอบจะเปลี่ยนไปใช้ เครื่องหมาย DSCP เริ่มต้นของระบบ, โดยไม่เพิ่มลำดับความสำคัญ
ในทางปฏิบัติทั้งสอง ssh(1) และ sshd(8) เปลี่ยนแปลงแบบไดนามิก ยี่ห้อที่ใช้ตามชนิดของช่องสัญญาณที่ปรากฏ: หากการเชื่อมต่อแบบเดียวกันรวมเชลล์และ sftp, เฟสการถ่ายโอนแบบไม่โต้ตอบ จะใช้ค่าที่ไม่โต้ตอบระหว่างการดำเนินการและกลับสู่ EF เมื่อเหมาะสม ซึ่งควบคุมโดยคีย์ IPQoS en ssh_config y sshd_config.
นอกจากนี้ การสนับสนุนสำหรับ ToS IPv4 รุ่นเก่ากำลังถูกถอนออก ในตัวเลือก IPQoS (lowdelay, throughput, reliability หยุดมีผล) หากคุณยังคงใช้มันอยู่ ย้ายไปยังระบบการตั้งชื่อ DSCP (เช่น., ef, cs0, af11ฯลฯ )
การปรับปรุงอินพุต: ผู้ใช้ URI และการขยาย
ในส่วนความปลอดภัย 10.1 แก้ไขกรณีที่ละเอียดอ่อนซึ่งหากคุณสร้างบรรทัดคำสั่งด้วยข้อมูลภายนอกและใช้ในเวลาเดียวกัน ProxyCommand พร้อมส่วนขยาย %r/%uผู้โจมตีสามารถแอบแทรกนิพจน์เชลล์เข้าไปได้ เพื่อลดปัญหานี้ ssh(1) ห้ามใช้อักขระควบคุมในผู้ใช้ที่ผ่าน CLI หรือขยายแล้วและยังบล็อกอักขระ null ใน URIs ด้วย ssh://.
หมายเหตุเกี่ยวกับความเข้ากันได้: จุดตรวจสอบได้รับการผ่อนปรนเพื่อหลีกเลี่ยงการทำลายกรณีที่ถูกต้องตามกฎหมาย ชื่อผู้ใช้ตามตัวอักษรที่กำหนดไว้ในไฟล์การกำหนดค่า (โดยไม่มีการขยาย %) จะได้รับการยกเว้น โดยยึดตามหลักการที่การกำหนดค่าในเครื่องนั้นถือว่าเชื่อถือได้
สัญญาณและข้อมูลสด: SIGINFO และการมองเห็น
เคล็ดลับการแก้จุดบกพร่องในทางปฏิบัติอีกประการหนึ่ง: ssh(1) และ sshd(8) ได้รับตัวจัดการ SIGINFO ที่บันทึกสถานะของช่องและเซสชันที่ใช้งานอยู่ ในการผลิตนี้ อำนวยความสะดวกในการวินิจฉัยการไหล การมัลติเพล็กซ์ การส่งต่อ และ X11 โดยไม่จำเป็นต้องแนบโปรแกรมดีบักเกอร์หรือเพิ่มรายละเอียดมากเกินไป
ในแนวทางเดียวกันของความโปร่งใส เมื่อการรับรองใบรับรองล้มเหลว ตอนนี้ sshd บันทึกข้อมูลเพียงพอเพื่อระบุใบรับรอง (รวมถึงสาเหตุที่ถูกปฏิเสธ) หากคุณทำงานกับ PKI และใบรับรองผู้ใช้/โฮสต์ การปรับปรุงนี้ ลดเวลาในการแก้ไขปัญหาลงอย่างมาก.
ssh-agent และคีย์: ซ็อกเก็ต การสุขาภิบาล และ PKCS#11
เพื่อป้องกันการเข้าถึงข้ามในสภาพแวดล้อมที่มีการติดตั้งแบบจำกัด /tmp, ซ็อกเก็ตตัวแทน (และที่ส่งต่อโดย sshd) เส ย้ายจาก /tmp ไปที่ ~/.ssh/agentดังนั้นกระบวนการที่มีสิทธิ์จำกัดบน /tmp จะไม่สืบทอดความสามารถในการลงนามด้วยคีย์ของคุณจากตัวแทนโดยไม่ได้ตั้งใจอีกต่อไป
การเปลี่ยนแปลงนี้มีอนุพันธ์อีกอย่างหนึ่ง: ก่อนที่ระบบปฏิบัติการจะสามารถทำความสะอาดซ็อกเก็ตที่ล้าสมัยได้ ตอนนี้ ssh‑agent รวมการล้างข้อมูลของตัวเอง จากซ็อกเก็ตเก่า นอกจากนี้ ตัวแทนยังเพิ่มแฟล็กใหม่ด้วย: -U y -u เพื่อควบคุมความสะอาดในช่วงเริ่มต้น -uu เพื่อละเว้นชื่อโฮสต์ในการล้างข้อมูลและ -T เพื่อบังคับให้มีสถานที่ทางประวัติศาสตร์ใน /tmp หากคุณต้องการมันจริงๆ
ในระนาบคีย์ ไคลเอนต์และตัวแทน ED25519 ที่โฮสต์บนโทเค็น PKCS#11 ได้รับการสนับสนุนแล้วหากคุณอาศัย HSM หรือคีย์เข้ารหัส คุณจะได้รับความยืดหยุ่นโดยไม่ต้องเสียสละความแข็งแกร่ง
ssh‑add และใบรับรอง: การหมดอายุการทำความสะอาดตัวเอง
เมื่อคุณเพิ่มใบรับรองให้กับตัวแทน ขณะนี้มีกำหนดวันหมดอายุไว้แล้ว โดยมีระยะเวลาผ่อนผัน 5 นาทีแนวคิดนี้เรียบง่าย: อนุญาตให้ธุรกรรมเสร็จสิ้นในคิวแล้ว ลบใบรับรองตัวแทนโดยอัตโนมัติหากการไหลของคุณต้องการการควบคุมทั้งหมด ssh‑add -N ปิดการใช้งานพฤติกรรมนี้
RefuseConnection: การตัดการเชื่อมต่อที่ควบคุมโดยฝั่งไคลเอนต์
มีสถานการณ์ที่คุณสนใจที่จะยกเลิกการเชื่อมต่อจากไคลเอนต์ด้วยข้อความที่ชัดเจน (ตัวอย่างเช่น การเปลี่ยนเส้นทางการดำเนินงานหรือการแจ้งเตือนการเลิกใช้งาน). OpenSSH 10.1 เพิ่ม การเชื่อมต่อขยะ a ssh_config: หากพบขณะประมวลผลส่วนที่ร้อน ไคลเอนต์จะยุติการทำงานด้วยข้อผิดพลาดและ แสดงข้อความที่คุณได้กำหนดไว้.
คุณภาพโค้ดและความปลอดภัยแบบสด
ทีมงานยังคงทำความสะอาดฐานโค้ดต่อไป 10.1 รายการ การรั่วไหลของหน่วยความจำได้รับการแก้ไขการปรับปรุงอะตอมเมื่อเขียน known_hosts มีผู้เข้าร่วมจำนวนมากและหลาย เงื่อนไขการแข่งขันได้รับการแก้ไขแล้ว ในกระบวนการเช่น MaxStartups หรือเซสชัน X11
หมายเหตุการทำความสะอาด crypto: การสนับสนุนสำหรับ XMSS ถูกลบออก (เป็นการทดลองและไม่เคยเกิดขึ้นเองโดยค่าเริ่มต้น) การเตรียมพื้นดินสำหรับ แผนการลายเซ็นหลังควอนตัม เวอร์ชันที่เป็นผู้ใหญ่มากขึ้นที่จะมาในเวอร์ชันต่อๆ ไป
ความสามารถในการพกพาและระบบนิเวศ: PAM, FreeBSD, macOS, Android…
การเปลี่ยนแปลงความสามารถในการพกพาส่งผลกระทบต่อหลายด้าน: การตรวจสอบพิเศษในสภาพแวดล้อม PAM (เช่น การทำให้แน่ใจว่าผู้ใช้จะไม่เปลี่ยนแปลงระหว่างกระบวนการ) การปรับปรุงการบูรณาการด้วย FreeBSD (การส่งต่อและความเข้ากันได้ของ tun) MacOS (การตรวจจับฟังก์ชันและส่วนหัวที่แข็งแกร่ง) และ Android (struct passwd พร้อมฟิลด์ที่ไม่ใช่ค่า null)
นอกจากนี้ส่วนหัวความเข้ากันได้ยังถูกเพิ่มสำหรับแพลตฟอร์มที่ไม่มีไลบรารีมาตรฐานบางอย่าง ซึ่งจะช่วยลดจำนวน #ifdef กระจายออกไป สุดท้ายก็ถูกกลั่นกรอง นโยบายแซนด์บ็อกซ์ Seccomp บน Linux เพื่อครอบคลุม syscalls เช่น futex_time64 ในรูปแบบ 32 บิต และเพิ่มการรองรับ AWS-LC เป็นทางเลือกแทน OpenSSL/LibreSSL
QoS ในการดำเนินการ: ตัวอย่างเชิงปฏิบัติและการย้าย IPQoS
หากคุณใช้ ToS aliases เก่า (lowdelay, throughput...), ตอนนี้พวกเขาจะถูกเพิกเฉย และคุณจะเห็นข้อความดีบักที่แนะนำ DSCP การย้ายข้อมูลทั่วไปจะเป็นไปจาก IPQoS lowdelay a IPQoS ef สำหรับเซสชันแบบโต้ตอบ หากคุณยังทำ SFTP หนักๆ ด้วย คุณก็ทำได้ กำหนดโปรไฟล์โดยการจับคู่ en ssh_config/sshd_config เพื่อแยกการจราจร
จำไว้ว่าเครื่องยนต์ เลือกและอัปเดตโดยอัตโนมัติ มันจะทำเครื่องหมายแบบเรียลไทม์ตามช่องที่เปิดอยู่ ดังนั้นงานส่วนใหญ่จึงได้รับการดำเนินการแทนคุณโดย OpenSSH แล้ว
การติดตั้ง OpenSSH 10.1 บน Linux (แหล่งที่มา)
ในขณะที่การแจกจ่ายรวมเวอร์ชัน คุณสามารถรวบรวมจากแหล่งที่มาอย่างเป็นทางการดาวน์โหลด tarball จากมิเรอร์โครงการ แตกไฟล์ และคอมไพล์:
tar -xvf opensh-10.1.tar.gz
เข้าสู่ไดเรกทอรีและ กำหนดค่าคำนำหน้าและเส้นทางการกำหนดค่า หากคุณต้องการ ตัวอย่างเช่น:
cd openssh-10.1 ./configure --prefix=/opt --sysconfdir=/etc/ssh
คอมไพล์และติดตั้ง ตามปกติ (ขึ้นอยู่กับการอนุญาต อาจมีผู้ใช้ระดับสูง):
ทำ
make install
เปิดใช้งาน OpenSSH บน Windows ด้วย PowerShell
ในสภาพแวดล้อม Windows สมัยใหม่ (Server 2019/Windows 10 1809+) คุณสามารถติดตั้งไคลเอนต์และเซิร์ฟเวอร์ OpenSSH เป็นฟีเจอร์ระบบได้. ตรวจสอบความจุและสถานะ :
Get-WindowsCapability-Online | ชื่อวัตถุที่เหมือนกับ 'OpenSSH*'
ติดตั้งส่วนประกอบ ตามที่คุณต้องการ:
เพิ่ม-WindowsCapability -Online -ชื่อ OpenSSH.Client~~~~0.0.1.0 เพิ่ม-WindowsCapability -Online -ชื่อ OpenSSH.Server~~~~0.0.1.0
เริ่มต้นและเปิดใช้งานบริการเซิร์ฟเวอร์ SSHและตรวจสอบกฎไฟร์วอลล์ขาเข้า:
เริ่มบริการ sshd ตั้งค่าบริการ - ชื่อ sshd - ประเภทการเริ่มต้น 'อัตโนมัติ' รับกฎ NetFirewall - ชื่อ 'OpenSSH-Server-In-TCP' - การดำเนินการข้อผิดพลาดแบบเงียบ ๆ ดำเนินการต่อ
หากต้องการเชื่อมต่อจากโฮสต์ Windows หรือ Linux อื่น ให้ใช้ไคลเอนต์มาตรฐาน: ssh dominio\usuario@servidor. เมื่อเข้าถึงครั้งแรก ยอมรับลายนิ้วมือโฮสต์ และยืนยันด้วยรหัสผ่านของคุณ
คู่มือการใช้งาน: การวินิจฉัยและแนวทางปฏิบัติที่ดี
สำหรับสภาพแวดล้อมที่มีใบรับรองผู้ใช้/โฮสต์ ใช้ประโยชน์จากการบันทึกข้อมูลที่ได้รับการปรับปรุง ของการปฏิเสธใน sshd เพื่อแก้ไข CA และส่วนขยาย หากเซสชันค้างหรือคุณสงสัยว่าเกิดการมัลติเพล็กซ์ เปิดตัว SIGINFO สู่กระบวนการแสดงรายการช่องที่ใช้งานอยู่โดยไม่ต้องเพิ่มระดับบันทึกทั่วโลก
หากคุณต้องพึ่งตัวแทน ให้ตรวจสอบว่าซ็อกเก็ตอยู่ที่ไหนตอนนี้ (~/.ssh/agent) และ เปิดใช้งานการทำความสะอาดอัตโนมัติ ในโมเดลการปรับใช้ของคุณ บนเวิร์กสเตชันแบบแชร์หรือ NFS ให้พิจารณาใช้แฟล็กเอเจนต์เพื่อตั้งค่าแฮชชื่อโฮสต์ในพาธเมื่อจำเป็น
การแก้ไขจุดบกพร่องที่เกี่ยวข้องมากที่สุด
ใน 10.1 พวกมันได้รับการแก้ไขแล้ว การถดถอยเล็กน้อยใน X11 เมื่อใช้ร่วมกับการบรรเทาอัตราการเต้นของหัวใจ (ObscureKeystrokeTiming) กรณีของ การบัญชีที่ย่ำแย่ของ MaxStartups ที่อาจจะท่วมช่องและการเขียนของ known_hosts ตอนนี้มันเสร็จแล้ว ในปฏิบัติการทางอะตอม เพื่อหลีกเลี่ยงการสลับสายที่มีการทำงานพร้อมกันสูง
ปรับปรุงการแก้ไขอื่น ๆ การวินิจฉัยเมื่อโหลดกุญแจการจัดการขีดจำกัดขนาดคอนฟิก (ตั้งแต่ 256KB ถึง 4MB) การตรวจสอบผลลัพธ์และกรณีพิเศษในลำดับการส่งต่อและควบคุมแบบโลคัล นอกจากนี้ ข้อความและผลลัพธ์จาก ssh -G y sshd -T.
รายการตรวจสอบการย้ายถิ่นฐานที่แนะนำ
รายการด่วนนี้ ซึ่งรวมถึงงานที่โครงการเสนอแนะและสิ่งที่เกิดขึ้นจากการเปลี่ยนแปลง:
- Crypto: ตรวจสอบว่าของคุณ
KexAlgorithmsอนุญาตให้ใช้ PQ แบบไฮบริดและสร้าง SSHFP ใหม่ใน SHA‑256 ด้วยssh-keygen -r. - QoS: เช็คเอาท์
IPQoSบนไคลเอนต์/เซิร์ฟเวอร์ ย้าย ToS เดิมไปยัง DSCP ใช้ประโยชน์จาก EF สำหรับเซสชันแบบโต้ตอบ - ตัวแทน: ปรับสคริปต์และตัวแปรให้เข้ากับซ็อกเก็ตภายใต้
~/.ssh/agent; ค่าการทำความสะอาดอัตโนมัติโดยตัวเอเจนต์เอง - การกำหนดค่าขนาดใหญ่:หากคุณสร้างการกำหนดค่าจำนวนมาก ขีดจำกัดจะเพิ่มขึ้นเป็น 4MB ใช้ด้วยความฉลาด และควบคุมการตรวจสอบ
- พาร์เซอร์: หลีกเลี่ยงการสร้างบรรทัดคำสั่งจากอินพุตที่ไม่น่าเชื่อถือ ใช้
configคนในพื้นที่ที่มีตัวอักษรเมื่อคุณมีกรณีแปลก ๆ ในชื่อผู้ใช้
ผู้ที่จัดการกองเรือผสมจะชื่นชมกับ 10.1 บีบคั้นความปลอดภัยในจุดที่เจ็บน้อยที่สุด (ตัววิเคราะห์ ตัวแทน คำเตือน) และในเวลาเดียวกัน ปรับปรุงประสบการณ์ในชีวิตประจำวัน (QoS แบบไดนามิก, SIGINFO, การบันทึกใบรับรอง) หากคุณใช้เวอร์ชัน 10.0 อยู่แล้ว การเปลี่ยนผ่านจะเป็นเรื่องง่าย หากคุณใช้เวอร์ชัน 9.x ให้ใช้เวลาในการปรับแต่ง DSCP สร้าง SSHFP ใหม่เป็น SHA‑256 และเปิดใช้งาน KEX แบบไฮบริดเพื่อป้องกันตัวเองจากภัยคุกคามควอนตัมโดยไม่กระทบต่อประสิทธิภาพ