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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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