Score:1

ความพยายามเชื่อมต่อ SSH อย่างรวดเร็วและต่อเนื่องหยุดทำงาน

ธง jp

ฉันมีสคริปต์ทุบตีซึ่งคัดลอกไฟล์ขนาดเล็กอย่างต่อเนื่องโดยใช้ scp. ดังนั้นจึงมีจำนวนมาก scp คำสั่งในสคริปต์นี้ กำลังใช้คีย์ SSH เพื่อรับรองความถูกต้องกับเซิร์ฟเวอร์อื่น

เนื่องจากไฟล์มีขนาดเล็กมาก ความพยายามในการเชื่อมต่อ SSH จึงเกิดขึ้นอย่างรวดเร็ว และไม่ไกลจากสคริปต์เลย scp จะแขวนอย่างไม่มีกำหนด

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

ถ้า ก นอน 1 วินาทีระหว่างการเรียก scp เหล่านี้ สคริปต์ทำงานได้อย่างราบรื่น ไม่ค้าง

ฉันควรมองหาการจำกัดอัตราที่ชัดเจนนี้จากที่ใด ฉันไม่เห็นสิ่งนี้ระหว่างเซิร์ฟเวอร์อื่นของฉัน...

Michael Hampton avatar
cz flag
คุณได้พิจารณาใช้การเชื่อมต่อ ssh แบบถาวรหรือไม่? ไม่เพียงแก้ปัญหานี้ แต่ยังทำให้การถ่ายโอนโดยรวมเร็วขึ้นมากอีกด้วย
Marcus avatar
jp flag
@MichaelHampton ฉันได้พิจารณาแล้ว แต่เนื่องจากฉันกำลังแก้ไขปัญหากระบวนการที่ฉันไม่ได้เป็นเจ้าของ ฉันจึงได้รับมอบหมายให้แก้ไขปัญหาโดยไม่ต้องเปลี่ยนสคริปต์ เป็นแนวคิดในการแก้ปัญหาที่ดีอย่างแน่นอน
Marcus avatar
jp flag
@anx สิ่งนี้น่าสนใจ ขอบคุณสำหรับลิงค์ ฉันไม่รู้เรื่องนี้ อย่างไรก็ตาม ปัญหา SSH นี้แสดงให้เห็นด้วย rsync เช่นกัน ดังนั้นฉันเชื่อว่าปัญหาไม่ได้อยู่ที่ scp
Score:3
ธง in

บางครั้งคนตั้งค่า การจำกัดอัตราโดยใช้ iptables.

OpenSSH มีไฟล์ MaxStartups ตัวเลือกที่จำกัดอัตราบางอย่างสำหรับไคลเอ็นต์ที่เข้ามา ค่าเริ่มต้น (อย่างน้อยในคอมพิวเตอร์ของฉัน) คือ 10:30:100.

sshd_config.man

อีกทางเลือกหนึ่ง สามารถเปิดใช้งานการปล่อยก่อนกำหนดแบบสุ่มได้โดยการระบุค่าที่คั่นด้วยทวิภาคสามค่า start:rate:full (เช่น "10:30:60") sshd(8) จะปฏิเสธความพยายามในการเชื่อมต่อด้วยความน่าจะเป็นของอัตรา/100 (30%) หากมีการเชื่อมต่อเริ่มต้น (10) ที่ไม่ได้ตรวจสอบสิทธิ์ ความน่าจะเป็นจะเพิ่มขึ้นเป็นเส้นตรงและความพยายามในการเชื่อมต่อทั้งหมดจะถูกปฏิเสธหากจำนวนการเชื่อมต่อที่ไม่ผ่านการตรวจสอบสิทธิ์เต็ม (60)

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

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

Marcus avatar
jp flag
ขอบคุณสำหรับการตอบสนองนี้ น่าเสียดายที่ฉันเชื่อว่าฉันได้ตัดสิ่งเหล่านี้ออกไปแล้ว เนื่องจาก MaxStartups ได้รับการตั้งค่าเหมือนกับบนโฮสต์ของฉันซึ่งไม่แสดงอาการแฮงค์ และ iptables ไม่มีกฎการจำกัดอัตรา
in flag
จริง ๆ แล้วมันค้าง 'ไปเรื่อย ๆ ' หรือแค่นาน ๆ ? ความเป็นไปได้อีกอย่างที่ฉันคิดได้คือคุณทำ DNS บนเซิร์ฟเวอร์นั้นเสีย และกำลังหมดเวลาพยายามแก้ไข DNS คุณอาจต้องการตั้งค่า `UseDNS no` ใน sshd_config ของคุณ
Marcus avatar
jp flag
ฉันคิดว่าคุณประสบความสำเร็จด้วย UseDNS no. หากคุณต้องการอัปเดตคำตอบของคุณด้วยเกร็ดความรู้เพิ่มเติมนี้ซึ่งช่วยแก้ปัญหาของฉันได้ ฉันจะยอมรับ
anx avatar
fr flag
anx
@Marcus อะไรคือพื้นหลังของ DNS ที่ล้มเหลวสำหรับการพยายามเข้าสู่ระบบอย่างต่อเนื่อง thogh? นี่เป็นข้อผิดพลาดหรือตัวแก้ไขต้นขั้วในเครื่องเสียหายหรือมีบางอย่างที่ไม่สามารถแก้ไขในเครื่องได้จริงๆ
Marcus avatar
jp flag
@anx สาเหตุที่แท้จริงยังอยู่ระหว่างการตรวจสอบ รู้ว่าเป็น DNS แม้ว่ามันจะมีประโยชน์มากก็ตาม ฉันมีเงื่อนงำอื่น ๆ ว่าเป็น DNS แต่ไม่รู้เกี่ยวกับ UseDNS ของ SSH จนถึงตอนนี้

โพสต์คำตอบ

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