ป้องกันการหมดเวลาการเชื่อมต่อ SSH / ท่อแตก

วิธีป้องกันไม่ให้เซสชัน SSH ตัดการเชื่อมต่อกับเซิร์ฟเวอร์ หมดเวลาการเชื่อมต่อหรือท่อแตก

ทั้งในฐานะผู้ใช้ Windows เช่นเดียวกับ Mac (ในช่วง 10 ปีที่ผ่านมา) ฉันใช้เวลาส่วนใหญ่ใน การเชื่อมต่อ SSH ไปยังเว็บเซิร์ฟเวอร์เซิร์ฟเวอร์อีเมลคลาวด์และแพ็คเกจสำรองอื่น ๆ การกระจายที่ต้องการของ Linux คือ CentOS อย่างไม่ต้องสงสัย

สิ่งหนึ่งที่เครียดที่สุดสำหรับผู้ดูแลระบบเซิร์ฟเวอร์คือ เพื่อขัดจังหวะการเชื่อมต่อ SSH. อย่างกระทันหันในขณะที่ติดกระดุมใน Putty หรือ Terminal (ส่วนใหญ่มักเป็นปัญหาการเชื่อมต่อภายในเครื่อง) หรือหลังจากนั้นสักครู่ว่าง” - ช่วงเวลาที่ไม่โต้ตอบกับเซิร์ฟเวอร์ระยะไกลผ่านเซสชัน SSH

หากคุณกำลังใช้ Mac และใช้เครื่องมือ Terminal สำหรับการเชื่อมต่อระยะไกลผ่าน SSH จากนั้นหลังจากไม่มีการใช้งานเป็นระยะเวลาหนึ่งคุณจะถูกตัดการเชื่อมต่อด้วยข้อความ:“client_loop: ส่งการตัดการเชื่อมต่อ: ท่อแตก”. ฉันให้วิธีแก้ปัญหาใน บทความที่นี่ซึ่งฉันบอกว่าสามารถเพิ่มได้ใน "/etc/ssh/ssh_config" เส้น:

Host *
ServerAliveInterval 120

โซลูชันข้างต้นใช้ได้สำหรับผู้ใช้ Macและตรงไปตรงมาเพื่อเป็นการอัปเดตล่าสุดของ macOS ไม่เป็นไร restart การเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์ "ssh_config"และปัญหาในการยกเลิกการเชื่อมต่อเซสชันที่ไม่ได้ใช้งานจะส่งกลับ

วิธีแก้ปัญหาที่เราสามารถป้องกันการตัดการเชื่อมต่อของเซสชัน SSH ในระยะทางที่กำหนดโดย สถานีปลายทาง (macOS) หรือ ผงสำหรับอุดรู (Windows) เป็นเหมือนนอกจาก“ServerAliveInterval” จากคอมพิวเตอร์ของเราเพื่อกำหนดเซิร์ฟเวอร์ระยะไกลเพื่อสื่อสารกับแอปพลิเคชัน / ไคลเอนต์ SSH เป็นระยะ
นั่นเป็นเหตุผลที่เราต้องวางคำสั่ง "ClientAliveInterval"ใน"sshd_config” บนเซิร์ฟเวอร์ที่เรากำลังเชื่อมต่อ

ป้องกันการหมดเวลาการเชื่อมต่อ SSH / ท่อแตก (ssh_config Tips)

1. เราเชื่อมต่อกับเซิร์ฟเวอร์ที่เราต้องการเปิดใช้งานและกำหนดช่วงเวลาสำหรับ "ClientAliveInternal" เราเปิด SSH ใน Putty, Terminal หรือยูทิลิตี้อื่นที่คล้ายคลึงกันและเราตรวจสอบสิทธิ์กับผู้ใช้ root.

ssh [email protected]

2. ดำเนินการบรรทัดคำสั่งเพื่อค้นหาไฟล์“ sshd_config” หาก“ ClientAliveInterval” ทำงานอยู่และกำหนดช่วงเวลาใด

sudo grep "ClientAliveInterval" /etc/ssh/sshd_config

ในสถานการณ์ของเรา "ClientAliveInterval" ถูกปิดใช้งานและค่าช่วงเวลาเป็นศูนย์

[[email protected] ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[[email protected] ~]# 

แฮชแท็ก "#"วางไว้หน้าบรรทัดยกเลิกมัน เธอไม่ได้ใช้งาน

3. เราเปิดด้วยตัวแก้ไข "nano"หรือ"vim"ไฟล์"sshd_config“. ฉันชอบ "นาโน" มากกว่า

sudo nano /etc/ssh/sshd_config

4. ลบ“#"หน้าเส้น"ClientAliveInterval” และกำหนดจำนวนวินาที: 60, 120 …

ClientAliveInterval 120
ClientAliveCountMax 10

5. บันทึกการเปลี่ยนแปลงและ restartฉันมีบริการ "sshd"

sudo systemctl restart sshd

ClientAliveInterval : เป็นช่วงเวลาเป็นวินาทีที่เซิร์ฟเวอร์ส่งแพ็กเก็ตข้อมูลว่างไปยังไคลเอนต์ / แอปพลิเคชันที่เราเชื่อมต่อกับเซิร์ฟเวอร์ แนวปฏิบัตินี้จะช่วยให้การเชื่อมต่อมีชีวิตอยู่ / ใช้งานได้

ClientAliveCountMax : ไคลเอนต์ SSH ที่ไม่ตอบสนอง ใน 10 รอบ 120 วินาที (กำหนดโดย“ ClientAliveInterval”) การเชื่อมต่อจะหยุดชะงัก นั่นคือหลังจาก 20 นาทีที่ไคลเอนต์ SSH ไม่ตอบสนองต่อแพ็กเก็ต null ที่เซิร์ฟเวอร์ส่งมา

ด้วยการเปลี่ยนแปลงเหล่านี้การเชื่อมต่อ SSH จะมีเสถียรภาพมากขึ้นและยังคงปลอดภัยเหมือนเดิม

เขียนความเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเปิดเผย กรุณากรอกช่องที่มีเครื่องหมายให้ครบถ้วน *

รวม
0
หุ้น
บทความก่อนหน้านี้

เราจะดูสิ่งที่ผู้ใช้กำลังมองหาบนเว็บไซต์ WordPress หรือร้านค้าออนไลน์ WooCommerce ได้อย่างไร (ข้อความค้นหาในช่องค้นหา)

บทความถัดไป

ไม่ได้ยินเสียง "Empty Recycle Bin" อีกต่อไปหรือไม่? [วิธีแก้ไข]