ปัญหาเดียวกันที่นี่ในการเข้าถึงเซิร์ฟเวอร์เฉพาะที่ online.net ดาต้าเซ็นเตอร์
ไม่มีปัญหาหลังจากรีบูตไม่จำเป็นต้องเปลี่ยน MTU การเชื่อมต่อ ssh ใช้งานได้ 1-3 สัปดาห์จากนั้นจะปรากฏข้อผิดพลาดเดียวกันนี้อย่างแน่นอนบล็อกบน KEXINIT ไม่สามารถเชื่อมต่อเซิร์ฟเวอร์ ssh ได้อีก
อาจเป็นข้อผิดพลาดบางอย่างของ sshd แต่สิ่งที่เกิดขึ้นกับพวก nework บางอย่างเกิดขึ้นหลังจาก 1-3 สัปดาห์ฉันทำซ้ำปัญหานี้แน่นอนหลายครั้งกับเซิร์ฟเวอร์ต่าง ๆ ในเครือข่ายนี้บางคนบอกว่ามันอาจเกี่ยวข้องกับข้อผิดพลาดของ Cisco อาจเกี่ยวข้องกับตัวเลือก DPI บางตัว
ปัญหานั้นไม่เคยเกิดขึ้นกับเซิร์ฟเวอร์ตัวอื่นที่ฉันจัดการในดาต้าเซ็นเตอร์อื่น ๆ และนั่นก็มี distro, config และ sshd รุ่นเดียวกัน
หากคุณไม่ต้องการรีบูตทุก ๆ 10 วันเพราะดาต้าเซ็นเตอร์ไฟร์วอลล์ (หรือเครือข่ายอื่นปรับแต่ง) กำลังทำสิ่งแปลก ๆ :
ก่อนอื่นให้เชื่อมต่อกับหนึ่งในวิธีแก้ปัญหาฝั่งไคลเอ็นต์:
วิธีแก้ปัญหา 1 ลดระดับท้องถิ่น MTU ฝั่งไคลเอ็นต์ของคุณ:
ip li set mtu 1400 dev wlan0
(1,400 ควรจะพอ แต่คุณสามารถลองใช้ค่าที่ต่ำกว่าถ้าจำเป็น)
วิธีแก้ปัญหา 2 ระบุ cypher ที่เลือกสำหรับการเชื่อมต่อ ssh:
ssh -c aes256-gcm@openssh.com host
(หรือลองใช้ Cypher อื่นก็ได้)
การแก้ปัญหาฝั่งไคลเอ็นต์ทั้งสองทำให้ฉันฉันสามารถเชื่อมต่อและประหยัดเวลาของฉัน แต่คุณต้องการแก้ไขฝั่งเซิร์ฟเวอร์นี้ตลอดไปดังนั้นคุณไม่จำเป็นต้องขอให้ลูกค้าทุกคนปรับแต่งโปรแกรม MTU ในเครื่อง
ใน gentoo ฉันเพิ่งเพิ่ม:
mtu_eth0="1400"
ใน /etc/conf.d/net
(ตัวเลือก mtu เดียวกันควรมีอยู่ในไฟล์กำหนดค่าเครือข่าย distro ที่ต้องการ)
ฉันได้ตั้งค่า MTU เป็น 1400 แต่ 1460 น่าจะเพียงพอแล้วในกรณีส่วนใหญ่
วิธีแก้ปัญหาอื่นที่ช่วยให้สามารถใช้กฎ iptables ต่อไปนี้เพื่อจัดการการกระจายตัว:
# / sbin / iptables -I เอาท์พุท -p tcp --tcp-flag SYN, RST SYN -j TCPMSS --clamp-mss-to-pmtu
# / sbin / ip6tables -I เอาท์พุท -p tcp --tcp-flag SYN, RST SYN -j TCPMSS --clamp-mss-to-pmtu
(แต่ส่วนตัวฉันไม่ต้องการตัวนี้มาก่อน)
โปรดทราบว่าอาการของปัญหานี้อาจเป็น:
debug1: SSH2_MSG_KEXINIT sent
ไม่ใช่แค่
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
แก้ไขมีนาคม 2016:
การลด mtu เป็น 1400 บนเซิร์ฟเวอร์ส่วนใหญ่จะทำงานได้ แต่เมื่อเร็ว ๆ นี้ฉันมีกรณีที่ mtu ลดลงเหลือ 1400 บนเซิร์ฟเวอร์และปัญหาปรากฏขึ้นอีกครั้งและไคลเอนต์ต้องลด mtu ถึง 1400 ด้วย
ปัญหานี้ยังปรากฏในรูปแบบการเข้าสู่ระบบเว็บที่รอให้หน้าโหลดซ้ำจนกว่าจะพูดว่า "เซิร์ฟเวอร์รีเซ็ตการเชื่อมต่อ" แล้วแก้ไขหลังจากไคลเอนต์ตั้งค่า mtU เป็น 1400
ลิงก์ที่เกี่ยวข้อง :
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1254085
http://www.held.org.il/blog/2011/05/the-myterious-case-of-broken-ssh-client-connection-reset-by-peer/
https://nowhere.dk/articles/natty-narwhal-problems-connecting-to-servers-behind-cisco-firewalls-using-ssh
/programming/2419412/ssh-connection-stop-at-debug1-ssh2-msg-kexinit-sent
http://www.1-script.com/forums/ssh/ssh-hang-after-ssh2-msg-kexinit-sent-10616-.htm
http://www.snailbook.com/faq/mtu-mismatch.auto.html