git Gtk-WARNING का उत्पादन करता है: प्रदर्शन नहीं खोल सकता


138

मैं अपने प्रोजेक्ट पर कमांड लाइन के माध्यम से दूरस्थ रूप से एक मशीन पर काम कर रहा हूं, जिस पर मेरा अधिकार नहीं है और चलाने के बाद git push origin masterमुझे निम्नलिखित त्रुटि मिलती है:

(gnome-ssh-askpass:29241): Gtk-WARNING **: cannot open display:

मेरी .git/configफ़ाइल में निम्नलिखित सामग्री है:

    [core]
       repositoryformatversion = 0
       filemode = true
       bare = false
       logallrefupdates = true 
    [remote "origin"]
       fetch = +refs/heads/*:refs/remotes/origin/*
       url = https://username@github.com/username/repository.git 
    [branch "master"]
       remote = origin
       merge = refs/heads/master

मुझे पहले 403 त्रुटि मिल रही थी। यहाँ टिप्पणी के बाद , मैंने अपने उपयोगकर्ता नाम को दूरस्थ url में @ साइन करने से पहले रखा और तब से, मुझे Gtk त्रुटि मिल रही है।

जब मैं मशीन का उपयोग करके लॉगिन करता हूं ssh -Xऔर पुश करने की कोशिश करता हूं, तो मुझे निम्नलिखित त्रुटि मिलती है:

X11 connection rejected because of wrong authentication.
(gnome-ssh-askpass:31922): Gtk-WARNING **: cannot open display:localhost:10.0

अगर मैं रिमोट का url बदलूं git@github.com:username/repository.git, तो त्रुटि यह है:

ssh: connect to host github.com port 22: Connection timed out
fatal: The remote end hung up unexpectedly

क्या आप जानते हैं कि इसे कैसे ठीक किया जाए?


2
मुझे लगता है कि आप ssh का उपयोग कर रहे हैं। इसके बजाय ssh -X का उपयोग करें। इसका मतलब है कि एक पासवर्ड डायलॉग खोलने की कोशिश कर रहा है, लेकिन कोई X नहीं है।
पॉज़िट्रॉन

धन्यवाद, लेकिन मैं स्पष्ट रूप से ssh का उपयोग नहीं कर रहा हूं, सिर्फ कॉल git push origin masterकर रहा हूं, इसलिए मुझे नहीं पता कि आप जो कह रहे हैं उसे कैसे लागू करें?
जॉन माणक

क्या मुझे पता है कि आप सर्वर को कहां से ला रहे हैं? मेरा मतलब किस मशीन से है? आपने उस मशीन में कैसे प्रवेश किया है?
पॉज़िट्रॉन

1
उफ़। माफ़ करना। मैंने आपके प्रश्न को पूरी तरह से नहीं पढ़ा। आपका "url" या तो होना चाहिए git@github.com:username/repo.gitया https://github.com/username/repo.gitलेकिन आप दोनों के मिश्रण का उपयोग कर रहे हैं।
पोज़िट्रॉन

ओह सॉरी, मुझे वही मिलेगा जो अब आपका मतलब है। मैंने मशीन का उपयोग करके लॉगिंग करने की कोशिश की ssh -X, लेकिन इससे भी मदद नहीं मिली। ऊपर अद्यतन प्रश्न देखें।
जॉन मनक

जवाबों:


336

मैंने आखिरकार समस्या का हल खोज लिया है। जैसा कि यहाँ वर्णित है , मैंने टर्मिनल में निम्न कमांड चलाई:

  unset SSH_ASKPASS

और फिर चल रहा git push origin masterहै जिस तरह से काम करना चाहिए। आप अपनी .bashrcफ़ाइल में लाइन भी जोड़ सकते हैं ।


5
धन्यवाद ... जिससे बहुत समय बचा। आपको आशीर्वाद
पूनम भट्ट

उसके लिए धन्यवाद! :-)
इटायब

1
धन्यवाद .. कि मेरे लिए काम किया! बिटकॉइन से लिनेक्स मशीन में क्लोन करने की कोशिश करते समय मुझे ऐसी ही त्रुटि मिल रही थी।
ब्लेसन जोस

2
बस यह जोड़ना चाहता था कि यह स्क्रिप्ट मेरे CentOS 6.7 सिस्टम पर इस चर को सेट कर रही थी: /etc/profile.d/gnome-ssh-askpass.sh
hshib

अब मुझे एकerror: RPC failed; result=22, HTTP code = 417
पीरनंद जू

19

मैंने हाल ही में एक RedHat 5 मशीन पर इस व्यवहार से निपटा, जहां हमारा Git संस्करण 1.7.4.1 था।

मेरे पास आत्मविश्वास का एक उच्च स्तर unset SSH_ASKPASSनहीं था जो अनपेक्षित परिणाम नहीं होगा, इसलिए मैं यह देखना चाहता था कि क्या कोई अन्य समाधान है।

मैं कुछ के लिए नहीं बता सकता था, लेकिन ऐसा लगता है कि इस समस्या के लिए एक पैच उसी समय के आसपास काम करता था जिसमें हमारे संस्करण का Git प्रकाशित हुआ था। इसलिए, मुझे यह प्रतीत होता है कि यह आशा करना उचित था कि अधिक हालिया संस्करण व्यवहार को सही करेगा।

और वास्तव में यह किया था। Git की 1.8 शाखा में अपग्रेड करके समस्या का समाधान किया गया। त्रुटि संदेश अभी भी किसी विषम कारण के लिए प्रदर्शित किया जाता है, लेकिन आपको अपने पासवर्ड के लिए सही संकेत दिया जाता है और जारी रखने की अनुमति दी जाती है।


2
RHEL 5 (CentOS 5 इत्यादि) में समस्या फ़ाइल /etc/profile.d/gnome-ssh-askpass.sh (जो ओपनश-आस्कपास पैकेज के स्वामित्व में है) में है, जहाँ SSH_ASKPASS परिवेश चर / usr / libexec / खुलता है। / gnome-ssh-askpass और यह काम नहीं करता है अगर कोई X नहीं है (यानी SSH पर PuTTY के माध्यम से लॉग इन किया गया है)। आप बस इस फाइल में लाइन को कमेंट कर सकते हैं (फाइल डिलीट न करें या ओपनश-आस्कपास पैकेज के अपडेट के बाद इसे रिकवर किया जाएगा)। या पैकेज ओपनश-आस्कपास को पूरी तरह से हटा दें (यम निकालें ओपनश-आस्कपास)।
मिलन केर्स्लेगर

0

इन जवाबों में से किसी ने भी मेरे लिए काम नहीं किया (विंडोज 10 पर Cygwin के माध्यम से RHEL 6.8 सर्वर में और RHEL बॉक्स से एक github.com रेपो क्लोन करने की कोशिश कर रहा है), इसलिए मैंने HTTPS उपयोगकर्ता नाम के बजाय SSH कुंजी के माध्यम से क्या किया था / कुंजिका। जैसे मैंने git@github.com का उपयोग किया: https url के बजाय MyUsername / myproject.git। मैंने अपनी सार्वजनिक कुंजी को गीथूब में उचित रूप से अपलोड किया है। इस विधि ने ठीक काम किया।

नोट: उपरोक्त समाधानों में, मैंने वास्तव में 1.8 शाखा के गिट में अपग्रेड करने की कोशिश नहीं की


0

आप दूरस्थ सर्वर पर ssh -Y का उपयोग करके भी लॉगिन करने का प्रयास कर सकते हैं ताकि संवाद बॉक्स रेखांकन प्रदर्शित कर सके।

ओपी की तरह, ssh -X के माध्यम से प्रवेश करना काम नहीं किया। पुश करने की कोशिश करते समय, सर्वर ने बस एक ही त्रुटि संदेश दोहराया - (gnome-ssh-askpass:29241): Gtk-WARNING **: cannot open display:- जैसा कि यह तब हुआ जब कोई X11 अग्रेषण के साथ ssh के माध्यम से लॉगिंग करता है। यह ओपी द्वारा रिपोर्ट की गई जानकारी से थोड़ा अलग व्यवहार है, जब उसने ssh-x की कोशिश की थी क्योंकि उसके त्रुटि संदेश को केवल ssh का उपयोग करने से थोड़ा बदल गया था।

हालाँकि, मेरे लिए, एक बार ssh -Y का उपयोग करके लॉग इन किया: कोई त्रुटि नहीं थी, पासवर्ड डायलॉग बॉक्स पॉप अप हुआ, मैंने पासवर्ड टाइप किया और GitHub ने पुश स्वीकार कर लिया।

जब आप एक विश्वसनीय ग्राहक ( /ubuntu/35512/what-is-the-difference-between-sh-y-) के रूप में दूरस्थ सर्वर का इलाज कर रहे हैं, तो फोरवार्निंग के रूप में, ssh -Y सुरक्षा समस्याओं को खोल सकता है। विश्वसनीय-x11-फ़ॉरवर्डिंग-एंड-एसश-एक्सयू )। इसलिए इसका उपयोग करते समय सावधान रहें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.