ssh रिटर्न संदेश "चैनल 1 पर X11 अग्रेषण अनुरोध विफल"


33

जब मैं किसी दूरस्थ सर्वर में ssh करता हूं जो किसी भी प्रकार का X11 डेस्कटॉप वातावरण नहीं चला रहा है तो मुझे निम्न संदेश मिलता है।

$ ssh user@server
X11 forwarding request failed

$ ssh user@server ls
X11 forwarding request failed on channel 1
file1
file2
...

मैं इन संदेशों से कैसे छुटकारा पा सकता हूं?

जवाबों:


38

केवल SSH विकल्पों का उपयोग करके इन संदेशों को 1 में से 3 तरीकों से समाप्त किया जा सकता है। आप हमेशा संदेश /dev/nullभी भेज सकते हैं, लेकिन ये विधियाँ केवल फँसाने और उन्हें डंप करने के बजाय कॉन्फ़िगरेशन के माध्यम से संदेश से निपटने की कोशिश करती हैं।

विधि # 1 - xauth स्थापित करें

जिस सर्वर में आप रीमोट कर रहे हैं, वह शिकायत कर रहा है कि यह उपयोगकर्ता की .Xauthorityफ़ाइल में प्रविष्टि नहीं बना सकता है , क्योंकि xauthयह स्थापित नहीं है। तो आप इस कष्टप्रद संदेश से छुटकारा पाने के लिए प्रत्येक सर्वर पर इसे स्थापित कर सकते हैं।

फेडोरा 19 पर आप xauthऐसा स्थापित करते हैं:

$ sudo yum install xorg-x11-xauth

यदि आप sshसर्वर में जाने का प्रयास करते हैं, तो आपको एक संदेश दिखाई देगा कि उपयोगकर्ता की .Xauthorityफ़ाइल में एक प्रविष्टि बनाई जा रही है ।

$ ssh root@server
/usr/bin/xauth:  creating new authority file /root/.Xauthority
$

बाद के लॉगिन अब यह संदेश नहीं दिखाएंगे।

विधि # 2 - इसे फॉरवर्डएक्स 11 के माध्यम से अक्षम करें

आप sshSSH पैरामीटर ForwardX11 को शामिल करके X11 अग्रेषण को सक्षम करने का प्रयास नहीं करने के लिए क्लाइंट को निर्देश दे सकते हैं ।

$ ssh -o ForwardX11=no root@server

आप -xस्विच के साथ एक ही काम कर सकते हैं :

$ ssh -x root@server

यह केवल इस संदेश को अस्थायी रूप से अक्षम कर देगा, लेकिन एक अच्छा विकल्प है यदि आप xauthदूरस्थ सर्वर पर स्थापित करने में असमर्थ हैं या अनिच्छुक हैं ।

विधि # 3 - sshd_config के माध्यम से इसे अक्षम करें

यह आमतौर पर डिफ़ॉल्ट है, लेकिन ऐसा नहीं होने पर, आप अपने sshdसर्वर को सेटअप कर सकते हैं ताकि X11Forwarding बंद हो, अंदर /etc/ssh/sshd_config

X11Forwarding no

3 विधियों में से मैं आमतौर पर # 2 का उपयोग करता हूं, क्योंकि मैं अक्सर X11Forwardingअपने अधिकांश सर्वरों के लिए चाहता हूं, लेकिन फिर X11....चेतावनी नहीं देखना चाहता हूं

$ HOME / .ssh / config फाइल

अधिकांश समय ये संदेश दिखाई भी नहीं देंगे। वे आम तौर पर केवल तब उपस्थित होते हैं जब आपके पास आपकी $HOME/.ssh/configफ़ाइल में निम्न प्रविष्टियाँ होती हैं , सबसे ऊपर।

ServerAliveInterval 15
ForwardX11 yes
ForwardAgent yes
ForwardX11Trusted yes

GatewayPorts yes

तो यह यह सेटअप है, जो अंततः उन X11..संदेशों की पीढ़ी को चला रहा है , इसलिए फिर से, विधि # 2 सबसे उपयुक्त प्रतीत होगी यदि आप ForwardX11 yesडिफ़ॉल्ट रूप से चालू करना चाहते हैं , लेकिन फिर sshग्राहक के दृष्टिकोण से कुछ कनेक्शनों के लिए इसे चुनिंदा रूप से अक्षम करें ।

सुरक्षा

यह आमतौर ForwardX11 yesपर हर समय साथ चलने की सलाह दी जाती है । इसलिए यदि आप अपने SSH कनेक्शन को सबसे सुरक्षित मनोर में संचालित करना चाहते हैं, तो निम्न कार्य करना सबसे अच्छा है:

  1. ForwardX11 yesअपनी $HOME/.ssh/configफ़ाइल में शामिल न करें
  2. जब आपको ज़रुरत हो तब ही फॉरवर्डिंगएक्स 11 का उपयोग करें ssh -X user@server
  3. यदि आप कर सकते हैं, X11Forwardingतो सर्वर पर पूरी तरह से अक्षम करें ताकि यह अस्वीकृत हो

संदर्भ


क्या आप मुझे unix.stackexchange.com/questions/470331/… के साथ मदद कर सकते हैं ?
ओवरएक्सचेंज

रिकॉर्ड के लिए, मुझे वह संदेश मिला जब मैं दूरस्थ सर्वर पर एक्स क्लाइंट चलाने की कोशिश कर रहा था । वे लॉन्च नहीं करेंगे क्योंकि $ DISPLAY सेट नहीं किया गया था। मैं इसे आपके पहले सुझाव के साथ ठीक करने में कामयाब रहा: xauth स्थापित करें।
टॉम एलिस

13

मेरे मामले /etc/ssh/sshd_configमें समस्या को हल करने के लिए इस स्ट्रिंग को जोड़ना :

X11UseLocalhost no

यह मेरे लिए काम करता था (सर्वर में पहले से ही xauth स्थापित था)। धन्यवाद।
पॉल हिगिन्स

यह मेरी समस्या को हल करने के लिए प्रकट हुआ, लेकिन मुझे समझ में नहीं आता कि क्यों, जो संबंधित है। मेरे पास तीन समान डेबियन 7 मशीनें होनी चाहिए, जिनमें से एक ने अचानक locahostX11 अग्रेषण को स्वीकार करना बंद कर दिया । अन्य दो पर एक्स 11 अग्रेषण अभी भी काम करता है। कोई भी विचार जो बदल सकता था?
काइल स्ट्रैंड

12

आज इस भाग गया और थोड़ी देर के लिए मेरे सिर को तब तक पीटा, जब तक कि मैं ssh सेटिंग में ठोकर नहीं खा गया:

यदि यह आरएचईएल 7 (सेंटोस, ओईएल, आदि) है, और इसमें आईपीवी 6 अक्षम है, तो इसकी आवश्यकता है:

AddressFamily inet

/ etc / ssh / sshd_config में सेट किया गया।


अगर इससे संबंधित केवल त्रुटि संदेश ...
जैक वासी

आप जानते हैं कि क्या मज़ेदार है? मैं आज इस में भाग गया और इसे गुगली किया, इस लेख को पाया, और चार साल पहले से मेरी अपनी टिप्पणी मिली और कहा "ओह यत यह समस्या है।"
सिस्टमस्पेटेट

2

यदि आप कुछ संदेशों के लिए इस संदेश को देखना बंद करना चाहते हैं (यानी X11 को अग्रेषित करना बंद करना चाहते हैं) तो एक और मामूली बदलाव होगा, लेकिन फिर भी सभी अन्य कनेक्शन के लिए DefaultX11 पर डिफ़ॉल्ट रखें।

इस परिदृश्य के लिए, आप अपने ~ / .ssh / config में विशिष्ट होस्ट (या श्रेणी) के लिए X11 अग्रेषण को अक्षम कर सकते हैं। कुछ इस तरह:

host 10.1.1.*
ForwardX11 no 

आभार: यह मौजूदा (और बहुत पूर्ण) मौजूदा उत्तर के लिए एक मामूली अलंकरण है - क्योंकि मैं टिप्पणी नहीं कर सकता!


2

यदि क्लाइंट को वर्बोज़ मोड ( ssh -v user@host) में चलाना आपको देता है

debug1: Remote: No xauth program; cannot forward with spoofing.

लेकिन xauthसर्वर पर वास्तव में स्थापित किया गया है, तो यह शायद इसलिए है क्योंकि sshd गलत स्थान पर xauth निष्पादन योग्य लगता है ( / usr / X11R6 / bin / xauth आमतौर पर)। जिसे सेटिंग करके ठीक कर सकते हैं

XAuthLocation /usr/bin/xauth

in / etc / sshd / sshd_config (या जो भी आपके सर्वर से कॉन्फ़िगर किया गया है)।


इसने मेरे लिए CentOS 7 पर काम किया। यह सटीक त्रुटि संदेश है जो मैं देख रहा था।
ब्रायन मिंटन

यह मेरी समस्या थी, दूर से एक मैक में लॉग इन करने की कोशिश कर रहा था। वहाँ सही झुकाव XAuthLocation / ऑप्ट / X11 / बिन / xauth था
लियोन एवरी

1

प्रति होस्ट के आधार पर X11 अग्रेषण को कॉन्फ़िगर करना

यहां पहले से मौजूद सभी उत्कृष्ट उत्तरों के अलावा, आप ForwardX11प्रति होस्ट के आधार पर कॉन्फ़िगर कर सकते हैं, इसलिए यदि केवल serverइस तरह विफल रहता है , तो आप ~/.ssh/configनिम्न फ़ॉर्म की अपनी फ़ाइल में एक प्रविष्टि जोड़ सकते हैं :

Host server server.domain.dom
    ForwardX11 no

तुम भी विन्यास के पूरे सेट के लिए alliases के रूप में इस तरह की प्रविष्टियों का उपयोग कर सकते हैं

Host my.server
    HostName server.domain.dom
    User user
    Port 1234
    ForwardX11 no

यह विशेष रूप से उपयोगी है यदि आपने SSH और SCP के लिए स्वतः पूर्ण सर्वर नाम सेट किए हैं ।


1

मैं sshd-xauthलगभग एक दशक पुराने बग के साथ एक रन के बाद इस सवाल पर आया था । दो समाधान बताए जाते हैं xauth, पहला बाईपास , दूसरा एड्रेसिंग बग।


समाधान 1 - बाईपास xauth

  • स्थानीय - स्थानीय मशीन एक Xserver की सेवा।
  • रिमोट - रिमोट मशीन जो एक्ससेवर में जाने वाले डेटा को ड्राइव करता है जो एप्लिकेशन को परोसता है

रिमोट /etc/ssh/sshd_config:

X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes

रिमोट ~/.Xauthority खाली है या मौजूद नहीं है

स्थानीय पर:

Xephyr -ac -screen 1280x800 -br -reset   :2 &
DISPLAY=:2 ssh  -fR 6010:/tmp/.X11-unix/X2  user@remote "DISPLAY=:10 xeyes"

परीक्षण में, स्थानीय Ubuntu 18.05 चला रहा था, रिमोट डेबियन जेसी चला रहा था।

मैंने इस समाधान को एक और प्रश्न के उत्तर के रूप में भी पोस्ट किया


समाधान 2 - sshd / xauth बग को संबोधित करें

यह समाधान ऊपर दिए गए @systempoet के समाधान के करीब है , हालांकि यह अकेला पर्याप्त नहीं था।

/etc/ssh/sshd_configदूरस्थ पर संशोधन के अलावा :

AddressFamily inet

/etc/hosts रिमोट भी संशोधित किया गया था:

::1     localhost ip6-localhost ip6-loopback

यदि या तो टिप्पणी की गई थी, तो त्रुटि संदेश

X11 forwarding request failed on channel 0

ssh -X ...कॉल के बाद दिखाई दिया । इसके अलावा /var/log/auth.logत्रुटि दिखाई गई:

sshd[...]: error: Failed to allocate internet-domain X11 display socket

बग (फिक्स से पहले) का उत्पादन करने के लिए टेस्ट:

स्थानीय मशीन:

$ Xephyr -ac -screen 1280x800 -br -reset -terminate  :2 &
$ DISPLAY=:2 ssh -X  user@remote
X11 forwarding request failed on channel 0

0

कॉन्फ़िगरेशन परिवर्तन करने के बाद ध्यान देने के लिए एक महत्वपूर्ण बिंदु यह है कि आपको sshd को मारना होगा ताकि वह परिवर्तनों को उठा सके:

cat /var/run/sshd.pid | xargs kill -1

मूल उपयोगकर्ता होने के नाते।


-2
  1. /etc/ssh/sshd_configअपने RHEL होस्ट में निम्नलिखित 2 विकल्प सेट करें

    X11Forwarding yes X11UseLocalhost no

  2. sudo /etc/init.d/sshd reload

  3. sudo yum install xauth
  4. -X स्विच के साथ अपने RHEL होस्ट पर वापस जाएं: ssh -X yourname@rhelbox
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.