ค้นหาเว็บไซต์

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 เฉพาะผู้ใช้:

  1. วิธีกำหนดค่าการเชื่อมต่อ 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:

  1. 5 แนวทางปฏิบัติที่ดีที่สุดในการรักษาความปลอดภัยและปกป้องเซิร์ฟเวอร์ SSH
  2. วิธียกเลิกการเชื่อมต่อ SSH ที่ไม่ได้ใช้งานหรือไม่ได้ใช้งานใน Linux

นั่นคือทั้งหมดที่สำหรับตอนนี้! คุณมีเคล็ดลับ/เทคนิคในการเร่งความเร็วการเชื่อมต่อ SSH หรือไม่ เราชอบที่จะได้ยินวิธีอื่นในการทำเช่นนี้ ใช้แบบฟอร์มความคิดเห็นด้านล่างเพื่อแบ่งปันกับเรา