ข้อผิดพลาดการแชร์การเชื่อมต่อ SSH ของ Mac OS X Lion Terminal


12

บางครั้งฉันพบข้อผิดพลาดนี้เมื่อพยายาม ssh ไปยังโฮสต์ระยะไกล:

mux_client_request_session: read from master failed: Broken pipe

ฉันใช้ Macbook Air OS X Lion กับมันใน ~ / .ssh / config:

ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r

ControlPersist 4h

ForwardAgent yes

Host [ex]
    HostName [example.com]
    User [somedude]

ข้อผิดพลาดดังกล่าวเกิดขึ้นเมื่อฉัน:

ssh ex

เทอร์มินัลหยุดทำงานประมาณ 1 นาทีจากนั้นจึงแสดง:

mux_client_request_session: read from master failed: Broken pipe
somedude@example.com's password:

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


คุณสามารถเข้าสู่เครื่องระยะไกลอื่น ๆ จากเครื่อง macbook ของคุณได้หรือไม่? เครื่องอื่นสามารถเข้าสู่ somedude@example.com ได้หรือไม่?
jessh

คำตอบ:


14

คุณได้ControlPersistเปิดใช้งาน การเดาที่มีการศึกษาของฉันคือสิ่งต่อไปนี้เกิดขึ้น:

  1. คุณมีการเชื่อมต่อกับ example.com
  2. ออกจากระบบ แต่เนื่องจากControlPersistเปิดใช้งานเซสชันจะถูกเปิดไว้สำหรับการเชื่อมต่อในอนาคต
  3. มีข้อผิดพลาดเกิดขึ้นกับการเชื่อมต่อเครือข่ายของคุณดังนั้นการเชื่อมต่อจะหยุดชะงัก
  4. เมื่อคุณเรียกใช้ssh somedude@example.comอีกครั้งจะพยายามนำการเชื่อมต่อมาใช้ใหม่จากขั้นตอนที่ 2 และเปิดการเชื่อมต่อใหม่หลังจากหมดเวลา

man ssh_configไม่มีตัวเลือกที่แยกต่างหากสำหรับการหมดเวลานี้สามารถใช้ได้ตาม ControlPersistเพื่อหลีกเลี่ยงนี้ไม่ได้ใช้ นอกจากนี้ฉันขอแนะนำให้ใช้การเข้าสู่ระบบกุญแจสาธารณะถ้าเป็นไปได้ คุณยังสามารถมีวลีรหัสผ่านสำหรับกุญแจสาธารณะของคุณได้ แต่กุญแจสาธารณะจะป้องกันรหัสผ่านของคุณอย่างมีประสิทธิภาพผ่านการเชื่อมต่อ SSH

/tmpนอกจากนี้คุณไม่ควรเก็บไฟล์ควบคุมภายใต้ สิ่งเหล่านั้นควร / จะต้องมีความปลอดภัยและตัวอย่างเช่น~/.ssh/master/ssh_mux_%h_%p_%rนั้นคือตำแหน่งที่ดีขึ้น แน่นอนหากคุณเป็นผู้ใช้แล็ปท็อปเพียงคนเดียว (?) นั่นไม่ใช่ปัญหาใหญ่เกินไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.