หน้าจอ X11 ที่ส่งต่อ SSH จาก Linux ไปยัง Mac หายไปหลังจากเวลาผ่านไป


10

ฉันมีปัญหาใหม่และก่อกวนด้วยการส่งต่อการเชื่อมต่อ X11 ของฉันเมื่อเข้าสู่ระบบจาก Mac (10.7.2) ถึง Linux (Ubuntu 8.04) ฉันไม่มีปัญหาในการใช้ ssh -X เพื่อล็อกอินเข้าสู่เครื่องระยะไกลและเริ่มต้นแอปพลิเคชันที่ใช้ X11 จากเชลล์นั้น

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

ข้อผิดพลาด xterm Xt: ไม่สามารถเปิดการแสดง: localhost: 10.0

แต่แอปพลิเคชั่น X11 ที่ฉันเริ่มต้นทันทีเมื่อฉันลงชื่อเข้าใช้ยังคงทำงานได้ปกติโดยใช้จอแสดงผลเดียวกันนั้น (localhost: 10.0) เพียงแค่ว่ามันเริ่มต้นก่อนหน้านี้

ฉันเปิดการบันทึก verbose ใน sshd_config และฉันเห็นสิ่งนี้ในไฟล์ /var/log/auth.log เพื่อตอบสนองต่อความพยายามในการเริ่มต้น xterm ที่ล้มเหลว:

sshd [22104]: ช่อง 8: เปิดล้มเหลว: ไม่อนุญาตให้ดำเนินการ: เปิดล้มเหลว

ถ้าฉัน ssh -X ไปที่เซิร์ฟเวอร์อีกครั้งการเริ่มเชลล์ใหม่และการกำหนดจอแสดงผลใหม่ (localhost: 11.0) กระบวนการเดียวกันซ้ำ: แอปพลิเคชั่น X11 เริ่มต้นตั้งแต่เริ่มต้นทำงานได้ดีตราบใดที่ฉันยังคงเปิดอยู่ (วัน ) แต่หลังจากผ่านไปสองสามชั่วโมงฉันไม่สามารถเริ่มใหม่จากเชลล์นั้นได้

รายละเอียด: เซิร์ฟเวอร์ OpenSSH sshd ที่ทำงานบน Ubuntu 8.04 แสดงการส่งต่อไปยัง Mac ที่ใช้ Lion (10.7.2) กับ Mac Apple X เซิร์ฟเวอร์เริ่มต้น ระบบเชื่อมต่อกับ LAN Ethernet ด้วยสวิตช์เดียว เครื่องทั้งสองไม่มีไฟร์วอลล์ จนกระทั่งเมื่อเร็ว ๆ นี้ (ไม่กี่วันที่ผ่านมา) การตั้งค่านี้ทำงานได้อย่างสมบูรณ์แบบดังนั้นฉันจึงประหลาดใจว่าจะต้องดูที่ไหนต่อไป ฉันไม่ใช่ผู้เชี่ยวชาญ X11 หรือ SSH แต่มีประสบการณ์ UNIX / Linux ที่ดี ไม่มีอะไรชัดเจนที่เปลี่ยนไปในการกำหนดค่าไคลเอนต์หรือเซิร์ฟเวอร์แม้ว่าฉันได้ลองเปลี่ยนตัวเลือกไม่กี่อันเพื่อลองแก้ไขปัญหานี้เช่นการตั้งค่า TCPKeepAlive ของ sshd_config เป็นไม่และตั้งค่า "โฮสต์ + localhost" (คุณสามารถบอกได้ว่าฉันเป็น Google)

เมื่อเข้าสู่ระบบจากแล็ปท็อป Linux 11.10 ไปยังโฮสต์ระยะไกลเดียวกันบนเครือข่ายและสวิตช์เดียวกันปัญหานี้จะไม่เกิดขึ้น - xterm สามารถเรียกใช้สำเร็จในเวลาไม่กี่ชั่วโมงต่อมาจากเชลล์ล็อกอิน ssh เดียวกันในขณะที่การทดลองเดียวกันจาก Mac ล้มเหลว ทดสอบเมื่อเช้านี้เพื่อให้แน่ใจ) ดังนั้นจึงเป็นปัญหาเฉพาะของ Mac

ด้วยการตั้งค่า "LogLevel DEBUG3" บนเครื่องระยะไกล (เซิร์ฟเวอร์ sshd) และไม่มีการเปลี่ยนแปลงใด ๆ ในการเชื่อมต่อไคลเอนต์โดยฉัน /var/log/auth.log แสดงการเปลี่ยนแปลงเล็กน้อยในรายงานสถานะการเชื่อมต่อค้างคืนซึ่งเป็นหมายเลขพอร์ตที่ใช้ จากเซสชัน ssh หนึ่งที่ประสบความสำเร็จจากเครื่อง Linux (ฉันคิดว่า), การเชื่อมต่อ # 7 ด้านล่าง:

sshd [20173]: debug3: ช่อง 7: สถานะ: การเชื่อมต่อต่อไปนี้เปิดอยู่: \ r \ n # 0 เซิร์ฟเวอร์ - เซสชัน (t4 r0 i0 / 0 o0 / 0 f0 14/13 cfd -1) \ r \ n # 3 การเชื่อมต่อ X11 จากพอร์ต 127.0.0.1 57564 (t4 r1 i0 / 0 o0 / 0 fd 16/16 cfd -1) \ r \ n # 4 การเชื่อมต่อ X11 จากพอร์ต 127.0.0.1 57565 (t4 r2 i0 / 0 f0 17 / 17 cfd -1) \ r \ n # 5 X11 การเชื่อมต่อจากพอร์ต 127.0.0.1 57566 (t4 r3 i0 / 0 o0 / 0 fd 18/18 cfd -1) \ r \ n # 6 X11 การเชื่อมต่อจากพอร์ต 127.0.0.1 57567 (t4 r4 i0 / 0 o0 / 0 fd 19/19 cfd -1) การเชื่อมต่อ \ r \ n # 7 X11 จาก 127.0.0.1 พอร์ต 59007

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

ขอบคุณสำหรับความช่วยเหลือ

-Mike


ฉันกำลังประสบปัญหาเดียวกัน
ปั่นป่วน

ฉันเปิด -vvv บนคำสั่ง ssh เพื่อรับข้อมูลการดีบักจากเซสชัน ssh ฝั่งไคลเอ็นต์ของ Mac ฉันได้รับ: codeปฏิเสธการเชื่อมต่อ X11 หลังจาก ForwardX11Timeout หมดอายุ ForwardX11Timeout เป็นตัวเลือกในไคลเอนต์ ssh ของ Mac ที่ จำกัด การส่งต่อจากการเชื่อมต่อที่ไม่น่าเชื่อถือ อาจใช้ -Y แทน -X จะใช้งานได้ ForwardX11Timeout ไม่ได้รับการบันทึกไว้ในหน้า ssh ของ Lion ค่าเริ่มต้นดูเหมือนจะเป็น 20 นาที การตั้งค่าให้สูงขึ้นใน ssh_config นั้นเป็นไปได้ แต่เซิร์ฟเวอร์ X ของ Lion ขัดข้องหากตั้งค่าเป็น> 596 ชั่วโมง ... ซึ่งในหน่วยมิลลิวินาทีจะมีหน่วยเกิน 31 บิต โอ๊ย หวังว่าจะแก้ไขได้
mklein9

คำตอบ:


13

เซสชัน ssh เริ่มต้นหลังจากที่ฉันเปลี่ยน / etc / ssh_config ของไคลเอ็นต์ Mac เพื่อรวมบรรทัด:

ไปข้างหน้า X11 หมดเวลา 596 ชม

ทำงานได้ดีและทำงานได้ทั้งวัน ตอนนี้พวกเขาทุกคนคงปฏิเสธที่จะเริ่มต้น xterms ใหม่ ดังนั้นฉันเชื่อว่านี่คือคำตอบและโชคดีที่ทางออกง่าย ๆ แต่การหมดเวลาจะยังคงเกิดขึ้น 3-1 / 2 สัปดาห์จากนี้


3

man ssh_config

ForwardX11Trusted

หากตัวเลือกนี้ถูกตั้งค่าเป็น "ใช่" ไคลเอนต์ X11 ระยะไกลจะสามารถเข้าถึงจอแสดงผล X11 ดั้งเดิมได้อย่างเต็มที่ หากตัวเลือกนี้ถูกตั้งค่าเป็น "ไม่" ไคลเอนต์ X11 ระยะไกลจะได้รับการพิจารณาว่าไม่น่าเชื่อถือและป้องกันไม่ให้ขโมยหรือแก้ไขข้อมูลที่เป็นของลูกค้า X11 ที่เชื่อถือได้ นอกจากนี้โทเค็น xauth (1) ที่ใช้สำหรับเซสชันจะถูกตั้งค่าให้หมดอายุหลังจาก 20 นาที ลูกค้าระยะไกลจะถูกปฏิเสธการเข้าถึงหลังจากเวลานี้ ค่าเริ่มต้นคือ "ไม่" ดูข้อกำหนดส่วนขยาย X11 SECURITY สำหรับรายละเอียดทั้งหมดเกี่ยวกับข้อ จำกัด ที่กำหนดไว้ในไคลเอนต์ที่ไม่น่าเชื่อถือ


1
อาจเป็นประโยชน์หากคุณขยายสาเหตุที่คุณคิดว่าตัวเลือกการกำหนดค่านี้จะแก้ปัญหาเดิมได้
pjmorse

สิ่งนี้อธิบายได้ว่าทำไมปัญหาเกิดขึ้น แต่การใช้เหตุผลบางอย่างจะมีประโยชน์
Stefan Lasiewski

1

ในการเพิ่มไปยัง "ตอบ 7 ม.ค. 12 ที่ 0:11 mklein9 28129" "เซสชัน ssh เริ่มต้นหลังจากที่ฉันเปลี่ยนไคลเอนต์ / etc / ssh_config ของไคลเอ็นต์ Mac เพื่อรวมบรรทัด:

ForwardX11Timeout 596h

... แต่การหมดเวลาจะยังคงเกิดขึ้น 3-1 / 2 สัปดาห์จากนี้ "

เห็นได้ชัดว่าคุณสามารถใช้ 0 และจะตั้งค่าการหมดเวลาเป็นอนันต์ (ตราบใดที่การเชื่อมต่อเปิดอยู่)

ForwardX11Timeout 0

...

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