Score:0

เหตุใด SSH จึงตัดการเชื่อมต่อด้วย 'ssh_dispatch_run_fatal: การเชื่อมต่อกับพอร์ต x.x.x.x 2020: การเชื่อมต่อเสียหาย'

ธง cn

ฉันกำลังพยายามหาสาเหตุว่าเหตุใดฉันจึงถูกตัดการเชื่อมต่อจากเซสชัน SSH ของฉัน โฮสต์คือเซิร์ฟเวอร์ CentOS และไคลเอนต์คือ MacOS

ข้อผิดพลาดดูเหมือนจะเกิดขึ้นเป็นระยะๆ บางครั้งก็เป็นชั่วโมงละครั้ง บางครั้งก็เป็นหลายครั้งในหนึ่งนาที แต่สิ่งที่น่าสนใจคือสิ่งนี้ไม่ได้เกิดขึ้นเมื่อฉันไม่ได้ใช้การเชื่อมต่อ - ฉันสามารถพิมพ์และการเชื่อมต่อก็จะหายไป ข้อผิดพลาดคือ:

ssh_dispatch_run_fatal: การเชื่อมต่อกับพอร์ต x.x.x.x 2020: การเชื่อมต่อเสียหาย

ฉันได้ลองเปิดหลายแท็บโดยเปิดการเชื่อมต่อ ssh ในแต่ละแท็บและดูเหมือนว่าจะตัดการเชื่อมต่อพร้อมกัน

เปิดการดีบักระดับ 3 ฉันมีไฟล์ /var/log/secure เอาต์พุตที่นี่โดยรอบเวลาตัดการเชื่อมต่อ:

16 ก.พ. 08:06:08 46 sshd[2864]: debug2: ช่อง 0: คำขอ [email protected] ยืนยัน 1
16 ก.พ. 08:06:08 46 sshd[2864]: debug3: ส่งแพ็คเก็ต: ประเภท 98
16 ก.พ. 08:06:08 46 sshd[2864]: debug3: รับแพ็กเก็ต: ประเภท 100
16 ก.พ. 08:06:08 46 sshd[2864]: debug1: มี 100/121 สำหรับ Keepalive
16 ก.พ. 08:06:38 46 sshd[2864]: debug2: ช่อง 0: คำขอ [email protected] ยืนยัน 1
16 ก.พ. 08:06:38 46 sshd[2864]: debug3: ส่งแพ็คเก็ต: ประเภท 98
16 ก.พ. 08:06:38 46 sshd[2864]: debug3: รับแพ็กเก็ต: ประเภท 100
16 ก.พ. 08:06:38 46 sshd[2864]: debug1: มี 100/122 สำหรับ Keepalive
16 ก.พ. 08:06:51 46 sshd[4517]: ปิดการเชื่อมต่อโดยพอร์ต x.x.x.x 62073
16 ก.พ. 08:06:51 46 sshd[4517]: debug1: ช่อง 0: ฟรี: เซสชันเซิร์ฟเวอร์, nchannels 1
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: ช่อง 0: สถานะ: การเชื่อมต่อต่อไปนี้เปิดอยู่:\r\n #0 เซสชันเซิร์ฟเวอร์ (t4 r0 i0/0 o0/0 fd 12/8 cc - 1)\r\n
16 ก.พ. 08:06:51 46 sshd[4517]: ปิดเซสชัน: ผู้ใช้ my_username จากพอร์ต x.x.x.x 62073 id 0
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: mm_request_send ป้อน: ประเภท 30
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: session_unused: session id 0 ไม่ได้ใช้
16 ก.พ. 08:06:51 46 sshd[4517]: debug1: do_cleanup
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: PAM: sshpam_thread_cleanup เข้ามา
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: mm_request_send ป้อน: ประเภท 122
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: mm_request_receive_expect เข้าสู่: ประเภท 123
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: mm_request_receive เข้ามา
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_request_receive เข้ามา
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: monitor_read: กำลังตรวจสอบคำขอ 30
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_answer_pty_cleanup กำลังเข้าสู่
16 ก.พ. 08:06:51 46 sshd[4514]: debug1: session_by_tty: เซสชั่น 0 tty /dev/pts/1
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_session_close: เซสชัน 0 pid 4517
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_session_close: tty /dev/pts/1 ptyfd 4
16 ก.พ. 08:06:51 46 sshd[4514]: debug1: session_pty_cleanup: เซสชัน 0 ปล่อย /dev/pts/1
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: session_unused: session id 0 ไม่ได้ใช้
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_request_receive เข้ามา
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: monitor_read: กำลังตรวจสอบคำขอ 122
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_request_send เข้า: พิมพ์ 123
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: mm_request_send เข้า: พิมพ์ 124
16 ก.พ. 08:06:51 46 sshd[4517]: โอนแล้ว: ส่ง 1503792 ได้รับ 18928 ไบต์
16 ก.พ. 08:06:51 46 sshd[4517]: ปิดการเชื่อมต่อกับพอร์ต x.x.x.x 62073
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: mm_audit_event กำลังเข้ามา
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: mm_request_send ป้อน: ประเภท 112
16 ก.พ. 08:06:51 46 sshd[4517]: debug3: mm_request_send กำลังป้อน: ประเภท 50
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_request_receive เข้ามา
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: monitor_read: กำลังตรวจสอบคำขอ 124
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_request_receive เข้ามา
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: monitor_read: กำลังตรวจสอบคำขอ 112
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_answer_audit_event กำลังเข้าสู่
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_request_receive เข้ามา
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: monitor_read: กำลังตรวจสอบคำขอ 50
16 ก.พ. 08:06:51 46 sshd[4514]: debug3: mm_answer_term: ฉีกเซสชัน
16 ก.พ. 08:06:51 46 sshd[4514]: debug1: PAM: การล้างข้อมูล
16 ก.พ. 08:06:51 46 sshd[4514]: debug1: PAM: ปิดเซสชัน
16 ก.พ. 08:06:51 46 sshd[4514]: pam_unix(sshd:session): ปิดเซสชันสำหรับผู้ใช้ my_username
16 ก.พ. 08:06:51 46 sshd[4514]: debug1: PAM: การลบข้อมูลประจำตัว

ชิ้นส่วนถูกบดบังด้วย x หรือ my_username


อัปเดต

ฉันได้เพิ่มบันทึกชุดใหม่ด้านบน - น้อยกว่าเดิม แต่ฉันหวังว่าจะเกี่ยวข้อง บรรทัดใหม่:

16 ก.พ. 08:06:51 46 sshd[4517]: ปิดการเชื่อมต่อโดยพอร์ต x.x.x.x 62073

สนใจฉันสิ่งนี้จะแนะนำว่าอุปกรณ์ของฉันกำลังตัดการเชื่อมต่อและไม่เกี่ยวข้องกับ SSH หรือไม่ ฉันเห็น (ฉันคิดว่า) มีการส่งแพ็กเก็ต Keep-alive ที่ประสบความสำเร็จก่อนที่จะตัดการเชื่อมต่อ


ฉันได้ลองรีสตาร์ท daemon และใช้ SSH เวอร์ชัน OpenSSH (ผ่านการชง) บน Mac และนั่นไม่ได้สร้างความแตกต่าง

ข้อมูลเซิร์ฟเวอร์:

â sshd.service - ภูตเซิร์ฟเวอร์ OpenSSH
   โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/sshd.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
   ใช้งานอยู่: ใช้งาน (ทำงาน) ตั้งแต่ ศ. 2022-02-11 10:21:40 GMT; 1 ชม. 52 นาทีที่แล้ว
     เอกสาร: man:sshd(8)
           ผู้ชาย: sshd_config(5)
 PID หลัก: 6271 (sshd)
   CGroup: /system.slice/sshd.service
           ââ6271 /usr/sbin/sshd -D

ความแตกต่างเพียงอย่างเดียวของเรา sshd_config สำหรับ CentOS มาตรฐานหนึ่งคือพอร์ต ระดับบันทึก และ:

ClientAliveInterval 30
ClientAliveCountสูงสุด 5

ทำไมฉันถึงถูกตัดการเชื่อมต่อ? อะไรเป็นสาเหตุที่ทำให้การเชื่อมต่อเสียหาย

asktyagi avatar
in flag
คุณมีข้อยกเว้น `ความยาวแพ็กเก็ตไม่ดี' ในบันทึกด้วยหรือไม่ ถ้าเป็นเช่นนั้น การเปลี่ยนช่วงเวลาการมีชีวิตอยู่และจำนวนการมีชีวิตสูงสุดอาจช่วยได้ โปรดแชร์เวอร์ชัน ssh ด้วย
Zareh Kasparian avatar
us flag
ต้องเพิ่มด้วยว่าไฟล์บันทึกของคุณไม่พร้อมใช้งาน ดูเหมือนว่าไฟล์นั้นหมดอายุแล้ว
cn flag
ขอบคุณทุกคน ฉันได้เพิ่มการเข้าสู่ระบบอีกครั้ง @asktyagi ฉันไม่เห็นข้อยกเว้น `ความยาวแพ็กเก็ตที่ไม่ถูกต้อง' ที่ใดก็ได้ในบันทึก
asktyagi avatar
in flag
โปรดเพิ่มบันทึกที่แสดงข้อผิดพลาด "การเชื่อมต่อเสียหาย" เพื่อให้เราเข้าใจว่าเกิดอะไรขึ้นก่อนเกิดข้อผิดพลาดนี้
cn flag
นี่คือบันทึกจากเวลาที่ฉันเห็นข้อผิดพลาดการเชื่อมต่อที่เสียหาย - ไม่มีการกล่าวถึงสิ่งนั้นในบันทึก เฉพาะจากฝั่งไคลเอนต์ (iTerm)
asktyagi avatar
in flag
อัปเดตคำตอบของฉันตามบันทึกของคุณ แต่ถ้าเป็นไปได้ โปรดอัปเดตบันทึกฝั่งไคลเอ็นต์ด้วย โดยเฉพาะ 5-10 บรรทัดก่อนที่ "การเชื่อมต่อเสียหาย" จะปรากฏขึ้น
Score:1
ธง in

นี่เป็นปัญหาการตัดการเชื่อมต่อที่เป็นไปได้มากที่สุด ฉันไม่แน่ใจว่าคุณกำลังใช้เวอร์ชันใด หากคุณตรวจสอบฐานรหัส ssh ที่ระบุว่า:

ssh จะส่งคืน SSH_ERR_CONN_CORRUPT ส่วนใหญ่เนื่องจาก sshpkt_disconnect

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

อัปเดต:

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

   /* การเชื่อมต่อถูกยกเลิก */
   ssh_packet_get_bytes(ssh, &ibytes, &obytes);
   verbose("ถ่ายโอน: ส่ง %llu ได้รับ %llu ไบต์",
   (ยาวยาวที่ไม่ได้ลงนาม) obytes, (ยาวยาวที่ไม่ได้ลงนาม)ibytes);

   verbose("ปิดการเชื่อมต่อกับพอร์ต %.500s %d", remote_ip, remote_port);
Score:0
ธง fr

จากที่นี่: https://linux-tips.com/t/how-to-solve-ssh-disconnect-packet-corrupt-problems/258

ลองใช้คำสั่งนี้เพื่อปิดใช้งานการตรวจสอบฮาร์ดแวร์:

sudo ethtool -K eth0 tx ปิด rx ปิด

ดูเหมือนว่าอาจเป็นปัญหาฮาร์ดแวร์ ฉันยังเคยอ่านที่อื่น ๆ ที่เปิด/ปิดเซิร์ฟเวอร์ทั้งหมดหรืออาจจะทำ ip link ตั้งค่า dev ${INTERFACE} ลง; ip link ตั้งค่า dev ${INTERFACE} ขึ้น อาจใช้ได้เช่นกัน

Score:0
ธง ga

คุณสามารถลองเพิ่มค่า ClientAliveInterval และ ClientAliveCountMax:

ClientAliveInterval 60
ClientAliveCountสูงสุด 10

เป็นไปได้มากว่าเซิร์ฟเวอร์จะหยุดรับแพ็กเก็ตจากไคลเอนต์และการเชื่อมต่อถูกตัดการเชื่อมต่อเนื่องจากการหมดเวลา

cn flag
การตัดการเชื่อมต่อเหล่านี้บางครั้งเกิดขึ้นเมื่อฉันพิมพ์ลงในเชลล์ SSH ของฉันจริง ๆ ดังนั้นฉันจึงไม่เชื่อว่ามันเกี่ยวข้องกับการตั้งค่าช่วงเวลาที่มีชีวิตอยู่
Score:0
ธง us

ฉันมีปัญหาเดียวกัน ดังนั้นฉันจึงเพิ่มสิ่งต่อไปนี้ในของฉัน .ssh/config ไฟล์และฉันยังไม่เห็นข้อผิดพลาดนั้น

โฮสต์ ฉัน-* ไมล์-*
ServerAliveInterval 300
ServerAliveCountMax 2

ไม่รับประกันว่าสิ่งนี้จะช่วยได้ แต่จนถึงตอนนี้ มันช่วยให้การเชื่อมต่อของฉันเปิดอยู่ได้นานกว่าที่เป็นอยู่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา