ฉันจะป้องกันคำเตือนไม่มีข้อมูล xauth ได้อย่างไร ใช้ข้อมูลการตรวจสอบสิทธิ์ปลอมสำหรับการส่งต่อ X11 หรือไม่


66

ทุกครั้งที่ฉันเริ่มการเชื่อมต่อ ssh จาก Mac ของฉันกับ Linux (Debian) ฉันจะได้รับคำเตือนนี้:

No xauth data; using fake authentication data for X11 forwarding.

สิ่งนี้ยังเกิดขึ้นกับเครื่องมือที่ใช้ ssh เช่น git หรือ mercurial

ฉันแค่ต้องการเปลี่ยนแปลงระบบของฉันเพื่อที่จะป้องกันไม่ให้สิ่งนี้ปรากฏ

หมายเหตุ: ฉันมีเซิร์ฟเวอร์ X11 (XQuartz 2.7.3 (xorg-server 1.12.4)) บน Mac OS X ของฉัน (10.8.1) และทำงานได้อย่างถูกต้องฉันสามารถเริ่มต้นนาฬิกาได้จากภายในเครื่องหรือจากระยะไกล


1
คุณใช้คำสั่งอะไรกับ ssh?
DerfK

@DerfK เพียงssh hostnameแต่ในฉัน~/.ssh/configฉันเพิ่มForwardX11 yesบางเวลาที่ผ่านมา นี่คือสิ่งที่ฉันต้องการมี
โซริน

ใช้ Ubuntu 16.04 LTS (สิงหาคม 2560) ฉันยอมแพ้ บรรทัดล่างคือแม้ว่ามันจะให้ข้อผิดพลาดก็ใช้งานได้ ฉันใช้ssh -Y hostnameจาก Linux และssh -x hostnameเมื่อใช้ OpenSSH บน Windows
SDsolar

คำตอบ:


66

โซลูชันที่โพสต์ไม่ทำงานสำหรับฉัน ระบบไคลเอนต์ (เดสก์ท็อป) ของฉันกำลังใช้งาน MacOS 10.12.5 (Sierra) ฉันเพิ่ม-vไปยังตัวเลือกสำหรับsshคำสั่งและมันบอกฉันว่า

debug1: No xauth program.

ซึ่งหมายความว่ามันไม่มีเส้นทางที่ถูกต้องไปยังxauthโปรแกรม (ใน macOS รุ่นนี้เส้นทางที่xauthไม่เป็นมาตรฐาน) วิธีแก้ไขคือเพิ่มบรรทัดนี้/etc/ssh/ssh_config(อาจอยู่/etc/ssh/configในการตั้งค่าบางอย่าง) หรือใน~/.ssh/config(หากคุณไม่มีสิทธิ์ของผู้ดูแลระบบ):

XAuthLocation /opt/X11/bin/xauth

ตอนนี้ข้อความเตือนหายไป


10
พระเจ้าช่วย. หลายปีที่ฉันพยายามหาวิธีแก้ปัญหาและสิ่งนี้ใช้ได้ผล ปีที่ฉันพูด! โปรดทราบว่าฉันทำอย่างนี้โดยการเพิ่มบรรทัดว่าภายใต้Host *รายการในของฉันไฟล์แทนการแก้ไข~/.ssh/config /etc/ssh/ssh_configเอกสารเดียวที่ฉันพบสำหรับสิ่งนี้คือสิ่งman sshd_configต่อไปนี้
Demitri

สิ่งนี้ใช้ได้สำหรับฉันเช่นกัน ฉันเข้าใจว่าในขณะนี้ XQuartz ไม่ได้รับการดูแลอย่างดีเนื่องจากขาดเงินทุน ดังนั้นฉันคิดว่าปัญหาการพอร์ตเช่นนี้จริง ๆ แล้วน้อยกว่าที่ฉันคาดไว้
AlanObject

บนเทือกเขาสูง นี่คือสิ่งที่เหมาะกับฉันเช่นกัน
mklein9

1
หมายเหตุคุณอาจพบปัญหานี้แม้ว่าเชลล์ของคุณจะพบ xauthใน PATH ของคุณ! ฉันเดาว่าไคลเอนต์ ssh กำลังฆ่าเชื้อ PATH ของคุณด้วยเหตุผลด้านความปลอดภัยหรือไม่?
MarcH

1
วิธีนี้ไม่ได้ผลสำหรับฉัน ฉันใช้ Cygwin กับ Win7 การเพิ่ม "XAuthLocation / usr / bin / xauth" ภายใต้รายการ "Host *" หรือก่อนหน้าบรรทัดนั้นใน ~ / .ssh / config ไม่ได้สร้างความแตกต่าง
David M. Karr

22

พบสาเหตุฉัน~/.ssh/configไม่สมบูรณ์คุณต้องการทั้ง:

Host *
    ForwardAgent yes
    ForwardX11 yes

ความผิดพลาดของฉันคือฉันรวมเฉพาะตัวเลือก ForwardX11


12
ฉันไม่แน่ใจว่าทำไมสิ่งนี้จึงเป็นสิ่งจำเป็น / เกี่ยวข้อง ForwardAgentถูกใช้เพื่ออนุญาตให้ใช้คีย์ที่แคชssh-agentเพื่อผ่านการเชื่อมต่อ SSH ที่ซ้อนกันหลายรายการ ไม่ควรเกี่ยวข้องกับ X11 ใด ๆ และตาม fwiw บางคนก็ไม่ได้เป็นความคิดที่ดีการรักษาความปลอดภัย: heipei.github.io/2015/02/26/ …
underscore_d

2
สิ่งนี้ช่วยไม่ได้เลยที่จะปิดการส่งต่อ X11 หรือแก้ไขการกำหนดค่า xauth เพื่อตั้งค่า ไม่เกี่ยวข้องกับตัวแทน ssh
eckes

วิธีนี้ไม่ได้ผลสำหรับฉัน
David M. Karr

สิ่งนี้~/.ssh/configอยู่บนไคลเอนต์ macOS หรือเซิร์ฟเวอร์ Linux หรือไม่ ฉันไม่มีไฟล์เหล่านี้เลย ฉันมีสิ่งที่คล้ายกัน/etc/ssh/sshd_config
Max Coplan

12

ปล่อยให้ Ubuntu ทุบตีใน Windows 10 ssh -X เพื่อรับสภาพแวดล้อม GUI บนเซิร์ฟเวอร์ระยะไกล

  • เป็นครั้งแรก

ติดตั้งทั้งหมดต่อไปนี้ Xmingบนหน้าต่างติดตั้ง บน Ubuntu ทุบตีใช้ในการติดตั้งsudo apt installssh xauth xorg

sudo apt install ssh xauth xorg
  • ที่สอง

ไปที่โฟลเดอร์ที่มีไฟล์ฉันเป็นssh_config/etc/ssh

  • ที่สาม

แก้ไขssh_configในฐานะผู้ดูแลระบบ (USE sudo) ภายในssh_configเอากัญชา#ในบรรทัดForwardAgent, ForwardX11, และตั้งข้อโต้แย้งที่สอดคล้องกันในการForwardX11Trustedyes

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • ออกมา

ในssh_configไฟล์ให้ลบแฮชด้านหน้า#ก่อนPort 22และProtocol 2และต่อท้ายบรรทัดใหม่ท้ายไฟล์เพื่อระบุตำแหน่งไฟล์ xauth XauthLocation /usr/bin/xauthอย่าลืมเขียนพา ธ ของไฟล์ xauth ของคุณเอง

# /etc/ssh/ssh_config

#   IdentifyFile ...
    Port 22
    Protocol 2
#   Cipher 3des
#   ...
#   ...
    ...
    ...
    GSSAPIDelegateCredentials no
    XauthLocation /usr/bin/xauth
  • ที่ห้า

ตอนนี้เนื่องจากเราแก้ไขssh_configไฟล์เสร็จแล้วให้บันทึกเมื่อเราออกจากโปรแกรมแก้ไข ตอนนี้ไปที่โฟลเดอร์~หรือ$HOMEเพิ่มไฟล์export DISPLAY=localhost:0ของคุณ.bashrcและบันทึก

# ~/.bashrc
...
...
export DISPLAY=localhost:0
  • ล่าสุด

เราเกือบเสร็จแล้ว รีสตาร์ทเปลือกทุบตีของคุณเปิดของโปรแกรมและการใช้งานXming ssh -X yourusername@yourhostจากนั้นเพลิดเพลินกับสภาพแวดล้อม GUI

ssh -X yourusername@yourhost

ปัญหาก็คือในระบบย่อย Ubuntu บน Windows และลิงค์อยู่ที่

https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776

หมายเหตุ: ข้อความที่เชื่อมโยงมี 2 ประเภท ( XauthLocaionแทนXauthLocation)


คำถามไม่เกี่ยวกับ Windows
kasperd

บน MacOS มันเกือบจะเป็นเหมือนกันแตกต่างแทนXmingเราควรจะได้รับXQuartzและไฟล์ที่อยู่ในสถานที่ที่แตกต่างกันฉันเป็นssh_config /private/etc/ssh
DestinyOne

และบรรทัดสุดท้ายของssh_configจะเป็น:XAuthLocation /opt/X11/bin/xauth
DestinyOne

2
ต้องการการแก้ไข: XauthLocaion-> XauthLocation(การแก้ไขนั้นเล็กเกินไปสำหรับฉันที่จะสร้าง)
echristopherson

1
นอกจากนี้การติดตั้งxming, ssh, xauthและxorg(ขั้นที่ 1) สิ่งเดียวที่จำเป็นสำหรับฉันเป็นexport DISPLAY=localhost:0
บาร์นี้

11

ตามที่ระบุไว้ดูเหมือนว่าxauthใน OS X Yosemite ได้กลับไปใช้เวอร์ชั่นเก่าที่ไม่ทำงานกับการ$DISPLAYตั้งค่าของ XQuartz :

% xauth -V
1.0.9
% xauth generate $DISPLAY .
xauth: (argv):1:  bad display name "/private/tmp/com.apple.launchd(...)/org.macosforge.xquartz:0" in "add" command

1
ฉันทดสอบบรรทัดเดียวกันใน OS X 10.11 และฉันไม่พบข้อผิดพลาดใด ๆ ยังคงเป็นรุ่นเดียวกันของ XQuartz
sorin

1
@guest xauth generate $DISPLAY .คำสั่งของคุณทำงานกับ Mac OS X High Sierra (10.13) ของฉันและแก้ไขNo xauth data; using fake authentication data for X11 forwarding.pb ของฉัน
SebMa

2

มีข้อผิดพลาดใน MacOS ในขณะนี้ ฉันเจอสิ่งนี้ด้วย การแก้ไขสำหรับฉันเกี่ยวข้องกับการเพิ่มสิ่งต่อไปนี้ใน. bash_profile ของฉัน

dispdir=`dirname $DISPLAY`
dispfile=`basename $DISPLAY`
dispnew="$dispdir/:0"
if [ -e $DISPLAY -a "$dispfile" = "org.x:0" ]; then
  mv $DISPLAY $dispnew
fi
export DISPLAY=$dispnew

โดยพื้นฐานแล้วชื่อสำหรับไพพ์ไฟล์ที่เชื่อมโยงกับ X root ของคุณไม่สามารถจัดการได้อย่างถูกต้องและจำเป็นต้องมีการแก้ไข :-)


ฉันสงสัยว่าสิ่งนี้จะแก้ข้อผิดพลาดในแอพ GUI OS X เช่น SourceTree
sorin

การยืนยันว่าใช้งานได้กับเซียร่าสำหรับการเรียกใช้ emacs โดยใช้ X - เนื่องจาก Mac เป็นเซิร์ฟเวอร์ สิ่งนี้ควรจะทำงานได้อย่างกว้างขวางในกรณีที่ลูกค้าอยู่บนเครื่องระยะไกล
Mark Mullin

2

รวมไปถึง

XAuthLocation / opt / local / bin / xauth ใน ~ / .ssh / config

ใน macOS Sierra 10.12.6 ของฉันทำงานให้ฉัน การเปลี่ยนแปลงเล็กน้อยจากคำตอบ 7)


1

ฉันเพิ่งลบ ~ / .Xauthority (เครื่องปลายทาง) จากโฟลเดอร์รูทของฉันและ ssh -X 192.168.123.1 อีกครั้งและ ik ทำงาน


ฉันสามารถยืนยันได้ว่านี่เป็นคำตอบสำหรับ Mac OS Sierra 10.12.4 การลบ ~ / .Xauthorityบนเซิร์ฟเวอร์ SSH ทำเคล็ดลับ: ~$ mv ~/.Xauthority ~/.Xauthority.bak คุกกี้เวทย์มนตร์ใหม่จะถูกใส่กลับเข้าไปใน ~ / .Xauthority โดยอัตโนมัติเมื่อฉันเข้าสู่ระบบอีกครั้ง ไม่จำเป็นต้องใช้สคริปต์ Bash เลย
Kenneth Pegasus

1

ในกรณีของฉันมันเป็นปัญหาของ. Xauthority ที่มีคุกกี้ Magic ไม่ได้ส่งต่อ Fabby บนhttp://askubuntu.com/questions/571116/แนะนำใน 2014-11-14 เพื่อเพิ่มบรรทัดนี้ในตอนท้ายของ. bashrc หรือ . โปรไฟล์ที่อนุญาตให้ส่งต่อคีย์ xauth ระหว่างผู้ใช้เมื่อโทร su:

export $(dbus-launch)

ฉันยังเพิ่มก่อนหน้านี้:

export XAUTHORITY=~/.Xauthority 

เพื่อให้แน่ใจว่ามีการเรียกจากระยะไกลด้วย ssh -X ̍ @ จะค้นหาได้

ในกรณีของฉัน. Xauthority เป็น symlink กับผู้ใช้ดั้งเดิม /home//.Xauthority ฉัน su จาก ...

  cd /home/<child_user>;ln -sf /home/<parent_user>/.Xauthority .xAuthority

ด้วยสิทธิ์ที่ถูกต้อง:

  sudo chown <parent_user> /home/<parent_user>/.profile
  chmod a+rw /home/<parent_user>/.profile 

ดังนั้นจึงสามารถเข้าถึงและไปที่ จะสามารถเรียกใช้แอปและแสดงผลลัพธ์ X-windowed บนหน้าจอท้องถิ่นผ่านบัญชีพร็อกซี!

เคล็ดลับ: ตรวจสอบรายการ xauth ... หากสะท้อนถึงคุกกี้เวทมนตร์


0

ฉันจะเพิ่มนี่เป็นความคิดเห็น แต่ฉันมีตัวแทนไม่เพียงพอ การเพิ่มอีกหนึ่งบรรทัดในโซลูชันของโซรินทำงานให้ฉัน

เปิดไฟล์ ssh config ของคุณด้วยvim ~/.ssh/config จากนั้นเพิ่มบรรทัดเหล่านี้ลงไป:

Host *
    ForwardAgent yes
    ForwardX11 yes
    XAuthLocation /opt/X11/bin/xauth

คุณสามารถตรวจสอบxauthตำแหน่งของคุณอีกครั้งด้วย:

which xauth

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