OpenSSH 9.0 มาพร้อมกับ SFTP แทน scp, การปรับปรุง และอื่นๆ

เมื่อเร็ว ๆ นี้ ประกาศเปิดตัว OpenSSH 9.0 เวอร์ชันใหม่แล้วไคลเอ็นต์แบบเปิดและการใช้งานเซิร์ฟเวอร์สำหรับการทำงานกับโปรโตคอล SSH 2.0 และ SFTP

สำหรับผู้ที่ไม่รู้จัก OpenSSH (Open Secure Shell) ควรทราบ นี่คือชุดแอปพลิเคชันที่อนุญาตให้มีการสื่อสารแบบเข้ารหัส ผ่านเครือข่ายโดยใช้โปรโตคอล SSH มันถูกสร้างขึ้นเพื่อเป็นทางเลือกที่เสรีและเปิดกว้างสำหรับโปรแกรม Secure Shell ซึ่งเป็นซอฟต์แวร์ที่เป็นกรรมสิทธิ์

ชุด OpenSSH ประกอบด้วยยูทิลิตี้บรรทัดคำสั่งต่อไปนี้และ daemons:

  • scp: ซึ่งใช้แทน rcp
  • sftp - การแทนที่ ftp สำหรับการคัดลอกไฟล์ระหว่างคอมพิวเตอร์
  • ssh - การแทนที่ rlogin, rsh และ telnet เพื่ออนุญาตให้เชลล์เข้าถึงเครื่องระยะไกล
  • ssh-add และ ssh-agent: ชุดยูทิลิตี้เพื่ออำนวยความสะดวกในการตรวจสอบความถูกต้องโดยเตรียมคีย์ให้พร้อมและหลีกเลี่ยงความจำเป็นในการป้อนข้อความรหัสผ่านทุกครั้งที่มีการใช้งาน
  • ssh-keygen - เครื่องมือสำหรับตรวจสอบและสร้างคีย์ RSA, DSA และเส้นโค้งรูปไข่ที่ใช้สำหรับการตรวจสอบผู้ใช้และโฮสต์
  • ssh-keyscan: ซึ่งจะสแกนรายชื่อโฮสต์และรวบรวมคีย์สาธารณะ
  • sshd: daemon เซิร์ฟเวอร์ SSH

คุณสมบัติใหม่หลักของ OpenSSH 9.0

ในเวอร์ชั่นใหม่ยูทิลิตี้ SCP ย้ายโดยค่าเริ่มต้นเพื่อใช้SFTP แทนที่จะเป็นโปรโตคอล SCP/RCP แบบเดิม

SFTP ใช้วิธีการจัดการชื่อที่คาดเดาได้มากกว่านี้ และไม่ใช้การประมวลผลเชลล์ของรูปแบบ glob บนชื่อไฟล์ที่อีกด้านหนึ่งของโฮสต์ ซึ่งสร้างปัญหาด้านความปลอดภัย โดยเฉพาะอย่างยิ่ง, เมื่อใช้ SCP และ RCP เซิร์ฟเวอร์จะตัดสินใจเลือกไฟล์และไดเร็กทอรีที่จะส่งไปยังไคลเอนต์และไคลเอ็นต์จะตรวจสอบเฉพาะความถูกต้องของชื่ออ็อบเจ็กต์ที่ส่งคืน ซึ่งหากไม่มีการตรวจสอบที่ถูกต้องโดยไคลเอ็นต์ จะทำให้เซิร์ฟเวอร์ส่งผ่านชื่อไฟล์อื่นๆ ที่แตกต่างจากที่ร้องขอได้

โปรโตคอล SFTP ไม่มีปัญหาเหล่านี้ แต่ไม่รองรับการขยายเส้นทางพิเศษ เช่น "~/" เพื่อแก้ไขความแตกต่างนี้ ณ OpenSSH 8.7 การใช้งานเซิร์ฟเวอร์ SFTP รองรับส่วนขยายโปรโตคอล "expand-path@openssh.com" เพื่อขยายเส้นทาง ~/ และ ~user/

เมื่อใช้ SFTP ผู้ใช้อาจพบกับความไม่ลงรอยกัน เกิดจากความต้องการเพิ่มอักขระขยายเส้นทางหลบหนีเป็นสองเท่าในคำขอของ SCP และ RCP เพื่อป้องกันไม่ให้ถูกตีความในด้านระยะไกล

ใน SFTP การหลีกเลี่ยงนี้ไม่จำเป็น และเครื่องหมายคำพูดเพิ่มเติมอาจทำให้เกิดข้อผิดพลาดในการถ่ายโอนข้อมูล ในเวลาเดียวกัน นักพัฒนา OpenSSH ปฏิเสธที่จะเพิ่มส่วนขยายเพื่อทำซ้ำพฤติกรรมของ scp ในกรณีนี้ เนื่องจากการหลบหนีสองครั้งถูกมองว่าเป็นข้อบกพร่องที่ไม่สมเหตุสมผลที่จะทำซ้ำ

การเปลี่ยนแปลงอื่นๆ ที่โดดเด่นใน OpenSSH 9.0 เวอร์ชันใหม่นี้คือ ssh และ sshd มีอัลกอริธึมการแลกเปลี่ยนคีย์แบบไฮบริด "sntrup761x25519-sha512@openssh.com" (ECDH/x25519 + NTRU Prime) เปิดใช้งานโดยค่าเริ่มต้น ทนทานต่อแรงดุดันบนคอมพิวเตอร์ควอนตัม และรวมกับ ECDH/x25519 เพื่อบล็อกปัญหาที่อาจเกิดขึ้นใน NTRU Prime ที่อาจเกิดขึ้นในอนาคต ในรายการ KexAlgorithms ซึ่งกำหนดลำดับในการเลือกวิธีการแลกเปลี่ยนคีย์ อัลกอริทึมที่กล่าวถึงตอนนี้อยู่ในอันดับแรกและมีความสำคัญเหนือกว่าอัลกอริทึม ECDH และ DH

ในทางกลับกัน ยังเน้นว่าคอมพิวเตอร์ควอนตัมยังไม่ถึงระดับของการถอดรหัสคีย์แบบเดิม แต่ การใช้ระบบป้องกันไฮบริด จะปกป้องผู้ใช้จากการโจมตีที่เกี่ยวข้องกับการจัดเก็บเซสชัน SSH ที่ถูกดักจับโดยคาดหวังว่าจะสามารถถอดรหัสได้ในอนาคตเมื่อคอมพิวเตอร์ควอนตัมที่จำเป็นพร้อมใช้งาน

ส่วนขยาย เพิ่ม "copy-data" ในเซิร์ฟเวอร์ sftp แล้ว ซึ่งอนุญาตให้คัดลอกข้อมูลทางฝั่งเซิร์ฟเวอร์โดยไม่ต้องถ่ายโอนไปยังไคลเอนต์ หากไฟล์ต้นทางและปลายทางอยู่บนเซิร์ฟเวอร์เดียวกัน

นอกจากนี้ ยังมีการเพิ่มคำสั่ง "cp" ในยูทิลิตี้ sftp เพื่อบังคับให้ไคลเอนต์คัดลอกไฟล์ทางฝั่งเซิร์ฟเวอร์

ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม เกี่ยวกับเวอร์ชันใหม่นี้คุณสามารถตรวจสอบรายละเอียดได้ โดยไปที่ลิงค์ต่อไปนี้

จะติดตั้ง OpenSSH 9 บน Linux ได้อย่างไร?

สำหรับผู้ที่สนใจสามารถติดตั้ง OpenSSH เวอร์ชันใหม่นี้บนระบบของตนได้ ตอนนี้พวกเขาทำได้ ดาวน์โหลดซอร์สโค้ดของสิ่งนี้และ ดำเนินการรวบรวมบนคอมพิวเตอร์ของพวกเขา

เนื่องจากเวอร์ชันใหม่ยังไม่รวมอยู่ในที่เก็บของลีนุกซ์หลัก ในการรับซอร์สโค้ดคุณสามารถทำได้จากไฟล์ ลิงค์ต่อไป.

ดาวน์โหลดเสร็จแล้ว ตอนนี้เราจะคลายซิปแพ็คเกจด้วยคำสั่งต่อไปนี้:

tar -xvf openssh-9.0.tar.gz

เราเข้าสู่ไดเร็กทอรีที่สร้างขึ้น:

cd openssh-9.0

Y เราสามารถรวบรวมด้วย คำสั่งต่อไปนี้:

./configure --prefix=/opt --sysconfdir=/etc/ssh
make
make install