สมมติว่าคุณต้องการดุร้ายกำลังเชื่อมต่อกับ X ...
สมมติว่าคุณกำลังรันคำสั่งของคุณบนเซิร์ฟเวอร์ (โดยที่ X รัน) มิฉะนั้นให้ทำงานก่อนแล้วใช้ 'ssh -X user @ server) จากไคลเอนต์หลังจากนั้น;)
อาจมีหลายวิธีในการเรียกใช้คำสั่ง xauth ตัวอย่างเช่นคุณอาจใช้ 'sudo' แต่อาจสูญเสียหรือเปลี่ยนตัวแปรสภาพแวดล้อม ตัวแปรสภาวะแวดล้อมต่อไปนี้ต้องถูกรักษาไว้: DISPLAY และ XAUTHORITY เพื่อทดสอบว่าเป็นกรณีนี้หรือไม่คุณสามารถเรียกใช้ 'echo $ XAUTHORITY' ในแบบเดียวกับที่คุณรันคำสั่ง แต่ให้แน่ใจว่าคุณไม่ได้ขยายตัวแปรสภาพแวดล้อมก่อนที่จะรันคำสั่งเหล่านั้น ตัวอย่างเช่นลอง: sudo bash -c 'echo "$ XAUTHORITY"' เพื่อดูว่า XAUTHORITY คืออะไรหลังจากที่คุณเรียกใช้ sudo (ถ้าหายไปคุณอาจต้องเพิ่มบางสิ่งลงในไฟล์ sudoers ของคุณดูที่อื่น)
ในที่สุดให้รันคำสั่งต่อไปนี้ในฐานะผู้ใช้ที่คุณต้องการเข้าถึงด้วยบนเซิร์ฟเวอร์:
xauth info
สิ่งนี้จะแสดง 'ไฟล์ผู้มีอำนาจ' ที่จะใช้ (/root/.Xauthority ตามค่าเริ่มต้นสำหรับรูทหรือบางอย่างเช่น /home/theuser/.Xauthority) ถ้ามันแสดงไฟล์. Xauthority ที่ถูกต้องคุณไม่ต้องกังวลเกี่ยวกับตัวแปรสภาพแวดล้อม XAUTHORITY จริง ๆ (จริง ๆ แล้วฉันไม่รู้ว่ามันจะไม่เกิดขึ้นยกเว้นในกรณีที่คุณต้องการจัดการกับสถานที่ที่ไม่ได้มาตรฐานของไฟล์นั้น )
ลบไฟล์นั้น (หากยังมีอยู่):
rm /root/.Xauthority
แทนที่/root/.Xauthority
ด้วยไฟล์ XAUTHORITY ที่ถูกต้องสำหรับเคสของคุณ
สร้างใหม่ แต่ว่างเปล่า (จำเป็นสำหรับคำสั่งจำนวนมาก):
touch /root/.Xauthority
ณ จุดนี้คุณจะได้รับข้อผิดพลาดที่ไม่ระบุโปรโตคอลแม้ว่าคุณจะได้รับMIT-MAGIC-COOKIE-1 ไม่ถูกต้องมาก่อน ค้นหาไฟล์สิทธิใช้งานที่เซิร์ฟเวอร์ X ใช้อยู่ในขณะนี้:
ps aux | grep Xorg
สิ่งนี้ควรแสดงสิ่งที่ชอบ:
root 1153 0.0 1.0 149560 44464 tty7 Ss+ dec02 0:00 /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711} -background none -noreset -displayfd 17 vt7
ชื่อไฟล์หลังจากนั้น-auth
เป็นสิ่งที่คุณต้องการในคำสั่งถัดไป รันสิ่งนี้เป็นรูท:
sudo xauth -f '/var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711}' list
ที่แสดงรายการคีย์เลขฐานสิบหก 32 หลัก ตัวอย่างเช่นผลลัพธ์อาจเป็น:
hostname/unix:0 MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
ใช้สิ่งนั้นเพื่อสร้างไฟล์. Xauthority ของคุณ (ในฐานะผู้ใช้ที่ต้องลงชื่อเข้าใช้อีกครั้ง):
xauth add $DISPLAY MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
แทนที่ 'c0eaf749aa252101a0f57d5087089db7' ด้วยสิ่งที่ถูกส่งคืนโดยคำสั่ง list สำหรับคุณ ตอนนี้. สิทธิ์ของคุณควรมีขนาด 51 ไบต์และคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ X (อีกครั้ง)