4 วิธีในการเพิ่มความเร็วการเชื่อมต่อ SSH ใน Linux
SSH เป็นวิธีที่ได้รับความนิยมและปลอดภัยที่สุดในการจัดการเซิร์ฟเวอร์ Linux จากระยะไกล หนึ่งในความท้าทายในการจัดการเซิร์ฟเวอร์ระยะไกลคือความเร็วในการเชื่อมต่อ โดยเฉพาะอย่างยิ่งเมื่อเป็นเรื่องของการสร้างเซสชันระหว่างเครื่องระยะไกลและเครื่องท้องถิ่น
กระบวนการนี้มีปัญหาคอขวดหลายประการ สถานการณ์หนึ่งคือเมื่อคุณเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลเป็นครั้งแรก โดยปกติจะใช้เวลาไม่กี่วินาทีในการสร้างเซสชัน อย่างไรก็ตาม เมื่อคุณพยายามเริ่มการเชื่อมต่อหลายรายการติดต่อกัน ทำให้เกิดค่าใช้จ่าย (การรวมเวลาคำนวณ หน่วยความจำ แบนด์วิธ หรือทรัพยากรอื่น ๆ ที่เกี่ยวข้องที่เกินหรือโดยอ้อมในการดำเนินการ)
ในบทความนี้ เราจะแบ่งปันเคล็ดลับที่เป็นประโยชน์สี่ประการเกี่ยวกับวิธีเพิ่มความเร็วการเชื่อมต่อ SSH ระยะไกลใน Linux
1. บังคับการเชื่อมต่อ SSH ผ่าน IPV4
OpenSSH รองรับทั้ง IPv4/IP6 แต่ในบางครั้งการเชื่อมต่อ IPv6 มีแนวโน้มที่จะช้าลง ดังนั้น คุณสามารถพิจารณาบังคับการเชื่อมต่อ ssh ผ่าน IPv4 เท่านั้น โดยใช้ไวยากรณ์ด้านล่าง:
ssh -4 [email
หรือใช้คำสั่ง AddressFamily (ระบุตระกูลที่อยู่ที่จะใช้เมื่อเชื่อมต่อ) ในไฟล์การกำหนดค่า ssh ของคุณ /etc/ssh/ssh_config (การกำหนดค่าส่วนกลาง) หรือ ~ /.ssh/config (ไฟล์เฉพาะผู้ใช้)
ค่าที่ยอมรับคือ “ใดๆ ”, “inet ” สำหรับ IPv4 เท่านั้น หรือ “inet6 ”
vi ~.ssh/config
ต่อไปนี้เป็นคู่มือเริ่มต้นที่เป็นประโยชน์เกี่ยวกับการกำหนดค่าไฟล์การกำหนดค่า ssh เฉพาะผู้ใช้:
- วิธีกำหนดค่าการเชื่อมต่อ SSH แบบกำหนดเองเพื่อทำให้การเข้าถึงระยะไกลง่ายขึ้น
นอกจากนี้ บนเครื่องระยะไกล คุณยังสามารถสั่งให้ sshd daemon พิจารณาการเชื่อมต่อผ่าน IPv4 ได้โดยใช้คำสั่งด้านบนในไฟล์ /etc/ssh/sshd_config
2. ปิดใช้งานการค้นหา DNS บนเครื่องระยะไกล
ตามค่าเริ่มต้น sshd daemon จะค้นหาชื่อโฮสต์ระยะไกล และยังตรวจสอบว่าชื่อโฮสต์ที่ได้รับการแก้ไขสำหรับที่อยู่ IP ระยะไกลนั้นแมปกลับไปยังที่อยู่ IP เดียวกันหรือไม่ ซึ่งอาจส่งผลให้เกิดความล่าช้าในการสร้างการเชื่อมต่อหรือการสร้างเซสชัน
คำสั่ง UseDNS ควบคุมการทำงานข้างต้น หากต้องการปิดใช้งาน ให้ค้นหาและไม่แสดงข้อคิดเห็นในไฟล์ /etc/ssh/sshd_config หากไม่ได้ตั้งค่า ให้เพิ่มด้วยค่า no
UseDNS no
3. ใช้การเชื่อมต่อ SSH ซ้ำ
โปรแกรมไคลเอนต์ ssh ใช้เพื่อสร้างการเชื่อมต่อกับ sshd daemon ที่ยอมรับการเชื่อมต่อระยะไกล คุณสามารถใช้การเชื่อมต่อที่สร้างไว้แล้วซ้ำได้เมื่อสร้างเซสชัน ssh ใหม่ ซึ่งจะช่วยเร่งความเร็วเซสชันต่อๆ ไปได้อย่างมาก
คุณสามารถเปิดใช้งานได้ในไฟล์ ~/.ssh/config
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
การกำหนดค่าข้างต้น (โฮสต์ *) จะเปิดใช้งานการเชื่อมต่อซ้ำสำหรับเซิร์ฟเวอร์ระยะไกลทั้งหมดที่คุณเชื่อมต่อโดยใช้คำสั่งเหล่านี้:
- ControlMaster – เปิดใช้งานการแบ่งปันหลายเซสชันผ่านการเชื่อมต่อเครือข่ายเดียว
- ControlPath – กำหนดเส้นทางไปยังซ็อกเก็ตควบคุมที่ใช้สำหรับการแชร์การเชื่อมต่อ
- ControlPersist – หากใช้ร่วมกับ ControlMaster จะบอก ssh ให้เปิดการเชื่อมต่อหลักไว้ในเบื้องหลัง (รอการเชื่อมต่อไคลเอ็นต์ในอนาคต) เมื่อการเชื่อมต่อไคลเอ็นต์เริ่มแรกถูกปิด
คุณสามารถเปิดใช้งานสิ่งนี้สำหรับการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลเฉพาะได้ เช่น:
Host server1
HostName www.example.com
IdentityFile ~/.ssh/webserver.pem
User username_here
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
วิธีนี้จะทำให้คุณเสียค่าใช้จ่ายในการเชื่อมต่อสำหรับการเชื่อมต่อครั้งแรกเท่านั้น และการเชื่อมต่อครั้งต่อๆ ไปทั้งหมดจะเร็วขึ้นมาก
4. ใช้วิธีการรับรองความถูกต้อง SSH เฉพาะ
อีกวิธีในการเร่งความเร็วการเชื่อมต่อ ssh คือการใช้วิธีการตรวจสอบสิทธิ์ที่กำหนดสำหรับการเชื่อมต่อ ssh ทั้งหมด และเราขอแนะนำให้กำหนดค่าการเข้าสู่ระบบแบบไม่ใช้รหัสผ่าน ssh โดยใช้ ssh keygen ใน 5 ขั้นตอนง่ายๆ
เมื่อดำเนินการเสร็จแล้ว ให้ใช้คำสั่ง PreferredAuthentications ภายในไฟล์ ssh_config (ทั่วโลกหรือเฉพาะผู้ใช้) ด้านบน คำสั่งนี้กำหนดลำดับที่ไคลเอนต์ควรลองใช้วิธีการตรวจสอบสิทธิ์ (คุณสามารถระบุคำสั่งที่แยกรายการเพื่อใช้มากกว่าหนึ่งวิธี)
PreferredAuthentications=publickey
หรือใช้ไวยากรณ์ด้านล่างจากบรรทัดคำสั่ง
ssh -o "PreferredAuthentications=publickey" [email
หากคุณต้องการการรับรองความถูกต้องด้วยรหัสผ่านซึ่งถือว่าไม่ปลอดภัย ให้ใช้สิ่งนี้
ssh -o "PreferredAuthentications=password" [email
สุดท้ายนี้ คุณต้องรีสตาร์ท sshd daemon หลังจากทำการเปลี่ยนแปลงข้างต้นทั้งหมด
systemctl restart sshd #Systemd
service sshd restart #SysVInit
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งที่ใช้ที่นี่ โปรดดูหน้าคู่มือ ssh_config และ sshd_config
man ssh_config
man sshd_config
ตรวจสอบคำแนะนำที่เป็นประโยชน์เหล่านี้สำหรับการรักษาความปลอดภัย ssh บนระบบ Linux:
- 5 แนวทางปฏิบัติที่ดีที่สุดในการรักษาความปลอดภัยและปกป้องเซิร์ฟเวอร์ SSH
- วิธียกเลิกการเชื่อมต่อ SSH ที่ไม่ได้ใช้งานหรือไม่ได้ใช้งานใน Linux
นั่นคือทั้งหมดที่สำหรับตอนนี้! คุณมีเคล็ดลับ/เทคนิคในการเร่งความเร็วการเชื่อมต่อ SSH หรือไม่ เราชอบที่จะได้ยินวิธีอื่นในการทำเช่นนี้ ใช้แบบฟอร์มความคิดเห็นด้านล่างเพื่อแบ่งปันกับเรา