Computer >> คอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

แก้ไข:ssh_exchange_identification 'การเชื่อมต่อถูกปิดโดยโฮสต์ระยะไกล'

แม้ว่าในหลายกรณี ssh_exchange_identification:การเชื่อมต่อปิดโดยข้อผิดพลาดโฮสต์ระยะไกลอาจเกิดจากปัญหาที่เกี่ยวข้องกับไฟล์การกำหนดค่า hosts.deny และ hosts.allow แต่ก็มีสิ่งอื่นที่อาจทำให้เกิดปัญหาได้ หากคุณกำลังอ่านข้อความนี้ แสดงว่าคุณได้ตรวจสอบแล้วว่าไฟล์ทั้งสองนี้ไม่ได้บล็อกที่อยู่ IP ของคุณจากการพยายามใช้ ssh บนเซิร์ฟเวอร์ระยะไกล

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

วิธีที่ 1:แก้ไขการพึ่งพาที่ขาดหายไป

หากคุณได้รับ ssh_exchange_identification:การเชื่อมต่อถูกปิดโดยข้อผิดพลาดของโฮสต์ระยะไกลหลังจากอัปเดต OpenSSL หรือ glibc แล้ว คุณอาจกำลังมองหาการพึ่งพาที่ขาดหายไป เรียกใช้ sudo lsof -n | grep ssh | grep DEL จากบรรทัดคำสั่งในสถานการณ์นี้ ซึ่งจะแสดงรายการไฟล์ที่เปิดอยู่ จากนั้นค้นหาเฉพาะไฟล์ที่เพิ่งถูกลบซึ่งเกี่ยวข้องกับ ssh daemon

แก้ไข:ssh_exchange_identification  การเชื่อมต่อถูกปิดโดยโฮสต์ระยะไกล

หากคุณไม่ได้อะไรกลับมา คุณยังสามารถลองรีสตาร์ท daemon หรือระบบได้ คุณจะต้องลองเริ่มต้นใหม่อีกครั้งหากมีข้อผิดพลาดจำนวนหนึ่งส่งกลับมาที่คุณ แม้ว่าคุณสามารถละเว้นสิ่งที่เกี่ยวข้องกับข้อความ /run/user/1000/gvfs ได้อย่างปลอดภัย เนื่องจากสิ่งเหล่านี้เกิดจากปัญหาที่ไม่เกี่ยวข้องที่ต้อง ทำกับระบบไฟล์เสมือน

คุณสามารถลองใช้ apt-get, pacman หรือ yum เพื่ออัปเดตแพ็คเกจของคุณได้เช่นกัน หากคุณสงสัยว่าการขึ้นต่อกันเป็นปัญหา หากคุณใช้ระบบที่ใช้ Debian หรือ Ubuntu คุณอาจต้องการลอง sudo apt-get -f upgrade และดูว่ามันช่วยแก้ไขแพ็คเกจที่เสียหายที่คุณอาจพลาดไปหรือไม่

วิธีที่ 2:การแก้ไขการกระจายหน่วยความจำ

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

แม้ว่าจะไม่สามารถรีบูตโฮสต์ได้เสมอไป แต่ก็สามารถแก้ไขปัญหาได้ และอาจเป็นความคิดที่ดีหากคุณได้สลับไปมาระหว่างข้อความแสดงข้อผิดพลาดนี้กับข้อความที่ส่งคืนที่อยู่ IP โปรดทราบว่าหากคุณมีสิทธิ์เข้าถึงเซิร์ฟเวอร์ใดๆ คุณสามารถเรียกใช้ vmstat -s คำสั่งและรับสถิติที่สำคัญเกี่ยวกับวิธีการใช้งานหน่วยความจำแม้ในฐานะผู้ใช้ทั่วไปในหลาย ๆ กรณี

แก้ไข:ssh_exchange_identification  การเชื่อมต่อถูกปิดโดยโฮสต์ระยะไกล

วิธีที่ 3:ตรวจสอบอินสแตนซ์ ssh เพิ่มเติม

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

สิ่งนี้อาจเกิดขึ้นหาก sshd ไม่สามารถติดตามสคริปต์ที่เริ่มเซสชัน ssh ต่างๆ จำนวนมากในลูปได้ หากสิ่งนี้เคยเกิดขึ้นกับคุณ ให้เพิ่ม sleep 0.3 คำสั่งวนซ้ำเพื่อให้ sshd daemon มีเวลาติดตาม

วิธีที่ 4:ค้นหาขีดจำกัดการเชื่อมต่อ sshd

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

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