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