ปัญหา Mountain Lion ssh -X


8

วิธีการเรียกใช้การส่งต่อ Mountain Lion X11 ผ่าน SSH?

ตัวอย่าง:

ssh -X some@example.com xterm

/ etc / sshd_config ของฉันมี

X11Forwarding yes
#X11DisplayOffset 10
X11UseLocalhost yes

# XAuthLocation added by XQuartz (http://xquartz.macosforge.org)
XAuthLocation /opt/X11/bin/xauth

รีสตาร์ท sshd ด้วย

launchctl stop com.openssh.sshd
launchctl start com.openssh.sshd

(และจากการตั้งค่า -> การแบ่งปันด้วย)

เริ่ม XQuatrz และจาก xterm ที่ฉันรัน

ssh -v -X mrp@192.168.1.17 xterm        #this part not works :)

ได้รับต่อไป:

debug1: Authentication succeeded (keyboard-interactive).
Authenticated to 192.168.1.17 ([192.168.1.17]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending command: xterm
debug1: Remote: No xauth program; cannot forward with spoofing.
X11 forwarding request failed on channel 0
xterm: Xt error: Can't open display: 
xterm: DISPLAY is not set
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2656, received 2480 bytes, in 0.1 seconds
Bytes per second: sent 29582.4, received 27622.1
debug1: Exit status 1

จาก xterm

$ echo $DISPLAY
/tmp/launch-BHtJfJ/org.macosforge.xquartz:0

เปลี่ยนเป็น:0ไม่ช่วย

ทำงานจาก xterm

$ xauth list
jonatan.local/unix:0  MIT-MAGIC-COOKIE-1  f4f85682af36ae7d95cd3d244cb6beb2
192.168.1.9:0  MIT-MAGIC-COOKIE-1  f4f85682af36ae7d95cd3d244cb6beb2
jonatan.local:0  MIT-MAGIC-COOKIE-1  f4f85682af36ae7d95cd3d244cb6beb2

ความคิดใด ๆ


คุณช่วยอธิบายได้ไหมว่าส่วนใดที่ไม่ได้ผลสำหรับคุณ
เอียงอาย

@dure ภาษาอังกฤษของฉันไม่ดีพอฉันหวังว่าข้อผิดพลาด meesage นั้นชัดเจนเพียงพอ แต่ตกลงเพิ่มความคิดเห็นคำถามเพื่อแสดงสิ่งที่ไม่ทำงาน หรือแม่นยำยิ่งขึ้นไม่ทำงาน X-protocol tunneling ผ่าน ssh ด้วยเหตุผลแปลก ๆ อาจจะ xauth ขอบคุณที่ให้ความสนใจ :)
jm666

คำตอบ:


8

คุณต้องเปิด XQuartz ไปที่X11 →การตั้งค่าความปลอดภัยมีสองช่องทำเครื่องหมาย: ปิดการใช้งานครั้งแรกเปิดใช้งานที่สอง รีสตาร์ท XQuartz แล้วลองอีกครั้ง คุณจะต้องกำหนด$DISPLAYตัวแปรเช่นนี้:

export DISPLAY=clienthost:0.0

ในขณะที่ฉันค้นพบปัญหาอยู่ในอีกด้านหนึ่ง - ไม่ใช่ใน OS X ของฉัน ขอบคุณ +1 อยู่แล้ว
jm666

@ jm666, Andreu ฉันมีปัญหาเดียวกันและวิธีนี้ไม่ได้ผลสำหรับฉัน # jm66 คุณสามารถแบ่งปันประสบการณ์ของคุณในการแก้ปัญหานี้ได้
math137

คือclienthostอะไร
Jonathan

1

ไม่แน่ใจว่าสิ่งนี้จะเกิดขึ้นได้อย่างไร แต่มาจากแหล่งข้อมูล SSH ที่มีข้อความแสดงข้อผิดพลาด:

/* Try to open a socket for the local X server. */
display = getenv("DISPLAY");
if (!display) {
    error("DISPLAY not set.");
    return -1;
}

มันบ่งชี้ว่า ssh แน่นอนคิดว่าตัวแปรไม่ได้ตั้งเลย (เช่นไม่ผิดรูปแบบหรือบางสิ่ง แต่ขาดหายไป)

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

ssh -vvv ....

(หลาย "v") เพื่อรับเอาท์พุทการดีบักเพิ่มเติมบางทีนี่อาจเป็นคำแนะนำในการเริ่มต้น


ว้าว - ความคิดที่ดีหลาย vvv - ไปตรวจสอบ Thanx :)
jm666

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