मैं चेतावनी को कैसे रोक सकता हूं कोई xauth डेटा नहीं; X11 अग्रेषण के लिए नकली प्रमाणीकरण डेटा का उपयोग करना?


66

हर बार जब मैं अपने मैक से लिनक्स (डेबियन) में ssh कनेक्शन शुरू करता हूं तो मुझे यह चेतावनी मिलती है:

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

यह उन उपकरणों के लिए भी होता है जो ssh का उपयोग कर रहे हैं, जैसे git या मर्क्यूरियल।

मैं केवल अपने सिस्टम में स्थानीय परिवर्तन करना चाहता हूं ताकि इसे प्रदर्शित होने से रोका जा सके।

नोट: मेरे पास मेरे मैक OS X (10.8.1) पर X11 सर्वर (XQuartz 2.7.3 (xorg-server 1.12.4)) है और यह ठीक से काम कर रहा है, मैं सफलतापूर्वक स्थानीय या दूरस्थ रूप से घड़ी शुरू कर सकता हूं।


1
आप ssh को क्या कमांड दे रहे हैं?
डर्फ़

@DerfK सिर्फ ssh hostnameलेकिन मेरे में ~/.ssh/configमैंने ForwardX11 yesकुछ समय पहले जोड़ा था। फिर भी यह कुछ ऐसा है जो मैं वहां करना चाहता हूं।
सोरिन

उबंटू 16.04 एलटीएस (अगस्त 2017) का उपयोग करते हुए मैंने हार मान ली। लब्बोलुआब यह है कि भले ही यह त्रुटि देता है, यह काम करता है। मैं ssh -Y hostnameलिनक्स से उपयोग करता हूं , और ssh -x hostnameविंडोज पर ओपनएसएसएच का उपयोग करते समय।
एसडीसोलर

जवाबों:


66

किसी भी पोस्ट किए गए समाधान ने मेरे लिए काम नहीं किया। मेरा क्लाइंट (डेस्कटॉप) सिस्टम macOS 10.12.5 (सिएरा) चला रहा है। मैंने कमांड के -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
डेमित्री

यह मेरे लिए भी काम किया। मैं समझता हूं कि फिलहाल फंड की कमी के कारण XQuartz का रखरखाव अच्छी तरह से नहीं किया जा रहा है। इसलिए मुझे लगता है कि इस तरह के मुद्दों को पोर्ट करना वास्तव में मेरी अपेक्षा से कम है।
एलनबोब्जेक्ट

उच्च सिएरा पर; यह वही है जिसने मेरे लिए भी काम किया है।
mklein9

1
ध्यान दें कि आप इस समस्या का अनुभव तब भी कर सकते हैं जब आपका खोल आपके पेट में xauth पा सकता है ! मुझे लगता है कि ssh क्लाइंट सुरक्षा कारणों से आपके PATH को सुरक्षित कर रहा है?
मार्ख

1
यह समाधान मेरे काम नहीं आया। मैं Win7 पर Cygwin का उपयोग कर रहा हूं। "XAuthLocation / usr / bin / xauth" जोड़ना, या तो "Host *" प्रविष्टि के तहत, या उस पंक्ति से पहले, ~ / .ssh / config में, कोई फर्क नहीं पड़ा।
डेविड एम। कर्र

22

कारण मिला, मेरा ~/.ssh/configअधूरा था, तुम दोनों की जरूरत है:

Host *
    ForwardAgent yes
    ForwardX11 yes

मेरी गलती यह थी कि मैंने केवल फॉरवर्डएक्स 11 विकल्प को शामिल किया।


12
मुझे यकीन नहीं है कि इसकी आवश्यकता क्यों है / प्रासंगिक है। कई नेस्टेड SSH कनेक्शनों से गुजरने के लिए ForwardAgentकैश की गई कुंजियों को अनुमति देने के लिए उपयोग किया जाता है ssh-agent। इसकी एक्स 11 के लिए कोई प्रासंगिकता नहीं होनी चाहिए। और fwiw, कुछ के अनुसार, यह एक अच्छा विचार सुरक्षा-वार नहीं है: heipei.github.io/2015/02/26/…
underscore_d

2
यह सही नहीं लगता है, जो वास्तव में X11 अग्रेषण को बंद करने या इसे स्थापित करने के लिए xauth कॉन्फ़िगरेशन को ठीक करने में मदद करता है। यह ssh एजेंटों से संबंधित नहीं है।
ईकेएस

यह समाधान मेरे काम नहीं आया।
डेविड एम। कर्र

यह ~/.ssh/configmacOS क्लाइंट या लिनक्स सर्वर पर है? मेरे पास न तो ये फाइलें हैं। मेरे पास एक समान है/etc/ssh/sshd_config
मैक्स कोपलान

12

ssh -X दूरस्थ सर्वर पर GUI वातावरण प्राप्त करने के लिए विंडोज 10 पर Ubuntu बैश को चलने दें

  • प्रथम

सभी निम्नलिखित स्थापित करें। विंडो पर, इंस्टॉल करें Xming। उबंटू बैश पर, sudo apt installइंस्टॉल करने के लिए उपयोग करें ssh xauth xorg

sudo apt install ssh xauth xorg
  • दूसरा

फ़ोल्डर में जाओ ssh_configफ़ाइल है, मेरा है /etc/ssh

  • तीसरा

ssh_configव्यवस्थापक (USE sudo) के रूप में संपादित करें । अंदर ssh_config, हैश को दूर #लाइनों में ForwardAgent, ForwardX11, ForwardX11Trusted, और करने के लिए इसी तर्क सेट yes

# /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 सबसिस्टम में भी है, और लिंक पर है

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

नोट: लिंक किए गए पाठ में 2 टाइपो (के XauthLocaionबजाय XauthLocation) शामिल हैं


सवाल विंडोज के बारे में नहीं है।
कास्परड सेप

MacOS पर यह लगभग समान है, अंतर इसके बजाय हैं Xming, हमें प्राप्त करना चाहिए XQuartz, और ssh_configफ़ाइल एक अलग स्थान पर है, मेरा है /private/etc/ssh
डेस्टिनीऑन

और भी, के लिए अंतिम पंक्ति ssh_configहोगी:XAuthLocation /opt/X11/bin/xauth
डेस्टिनीऑन

2
एडिट की जरूरत: XauthLocaion-> XauthLocation(यह एडिट मेरे लिए बहुत छोटा है)।
इक्रिस्टोफ़र्सन

1
स्थापित करने के अलावा xming, ssh, xauth, और xorg(चरण 1), केवल एक चीज मेरे लिए जरूरी थाexport DISPLAY=localhost:0
नामस्रोत

11

जैसा कि उल्लेख किया गया है, ऐसा लगता है कि xauthOS X Yosemite पर एक पुराने संस्करण को पुनः प्राप्त किया गया है जो XQuartz की $DISPLAYसेटिंग के साथ काम नहीं करता है :

% 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 का अभी भी वही संस्करण।
सोरिन

1
@guest आपकी xauth generate $DISPLAY .कमांड ने मेरे Mac OS X High Sierra (10.13) पर काम किया, और इसने मेरे No xauth data; using fake authentication data for X11 forwarding.pb को हल कर दिया ।
सेबमा

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

मूल रूप से आपके एक्स रूट से जुड़े फ़ाइल पाइप के लिए नाम को सही तरीके से नहीं संभाला जा सकता है, और इस प्रकार सुधार की आवश्यकता है। :-)


मुझे लगता है कि यह GUI OS X एप्स में त्रुटि को सुलझा लेगा, जैसे SourceTree।
सोरिन

मैक के सर्वर के रूप में एक्स का उपयोग कर emacs चलाने के लिए यह सिएरा पर काम करता है की पुष्टि करता है। यह उन मामलों में मोटे तौर पर काम करना चाहिए जहां ग्राहक एक दूरस्थ मशीन पर है
मार्क मुलिन

2

समेत

XAuthLocation / ऑप्ट / स्थानीय / बिन / xauth ~ / .ssh / config में

मेरे macOS सिएरा में 10.12.6 मेरे लिए काम किया। उत्तर 7 से एक छोटा सा बदलाव)।


1

मैंने अभी अपने रूट फ़ोल्डर और ssh -X 192.168.123.1 से worked / .Xauthority (गंतव्य मशीन) को हटा दिया और ik ने काम किया।


मैं पुष्टि कर सकता हूं कि यह मैक ओएस सिएरा 10.12.4 पर एक जवाब है। SSH सर्वर पर ~ / .Xauthority को हटाने का काम करता है: ~$ mv ~/.Xauthority ~/.Xauthority.bak एक बार फिर से लॉग इन करने पर एक नया मैजिक कुकी स्वचालित रूप से ~ / .Xauthority में वापस आ जाता है। किसी भी बैश स्क्रिप्टिंग की आवश्यकता नहीं है।
केनेथ पेगासस

1

मेरे मामले में यह। कुकी की समस्या थी, जिसमें मैजिक कुकी को अग्रेषित नहीं किया गया था, http://askubuntu.com/questions/571116/ पर फैब्बी ने 2014-11-14 को .bash & amp के अंत में इस लाइन को जोड़ने की सिफारिश की थी। । जब su बुला रहा हो तो उपयोगकर्ताओं के बीच xauth कुंजियों को अग्रेषित करने की अनुमति देने के लिए प्रोफ़ाइल:

export $(dbus-launch)

मैंने पहले भी जोड़ा था:

export XAUTHORITY=~/.Xauthority 

यह सुनिश्चित करने के लिए ssh -X remote @ के साथ रिमोट को बुलाया जाएगा।

मेरे मामले में .Xauthority मूल उपयोगकर्ता /home//.Xauthority I 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 

इसलिए यह और इसके लिए सुलभ है। प्रॉक्सी खाते में अपनी स्थानीय स्क्रीन पर एक्स-विंडो वाले परिणाम को चालू करने और प्रदर्शित करने में सक्षम होंगे!

सुझाव: चेक xauth सूची ... अगर जादू कुकी को दर्शाता है।


0

मैं इसे एक टिप्पणी के रूप में जोड़ूंगा, लेकिन मेरे पास पर्याप्त प्रतिनिधि नहीं है। सोरिन के समाधान के लिए एक और पंक्ति जोड़ना मेरे लिए काम कर गया।

अपनी ssh config फाइल को खोलें और vim ~/.ssh/config फिर इन पंक्तियों को इसमें जोड़ें:

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

आप अपने xauthस्थान को दोबारा जांच सकते हैं :

which xauth

यकीन नहीं अगर यह वास्तव में काम करेगा क्योंकि xauth स्थान प्रत्येक दूरस्थ मशीन पर अलग होगा। आपका MacOS एक जैसा दिखता है, लेकिन लिनक्स में यह अलग-अलग स्थान पर है। मैंने ज्यादातर फॉरवर्डएक्स 11 को पूरी तरह से निष्क्रिय करना शुरू कर दिया, क्योंकि मैंने इसे लगभग कभी नहीं बनाया।
Sorin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.