Git प्रॉक्सी पासवर्ड में @ वर्ण बच जाता है


90

मेरे पास 'http.proxy = http: // userId: pwd @ 123 @ipaddress: port' के रूप में git प्रॉक्सी कॉन्फिगर है, लेकिन एक रिमोट प्रोजेक्ट की क्लोनिंग करते हुए, मुझे त्रुटि के रूप में मिल रही है

Cloning into git...
error: Couldn't resolve proxy '123@ipaddress' while accessing http://git.kernel.org/pub/scm/git/git.git/info/refs

fatal: HTTP request failed

पासवर्ड में '@' अक्षर से कैसे बचें?

Pls ध्यान दें: मैं पासवर्ड नहीं बदल सकता।

जवाबों:


161

%40यदि आप प्रॉक्सी url में पासवर्ड पास कर रहे हैं तो मैं @ प्रतीक के URL एनकोडेड मूल्य ( ) का उपयोग करने की कोशिश करूँगा :

http.proxy=http://userId:pwd%40123@ipaddress:port

3
मैं ऐसा ही करने की कोशिश कर रहा हूं, लेकिन 'git क्लोन यूजर: pwd% 40123 @ ip: port ' के साथ और यह काम नहीं करता है। इसलिए मुझे लगता है कि git इस स्थिति में कर्ल का उपयोग नहीं करता है?
जोसेफ गार्विन

दिलचस्प ... निश्चित नहीं। यह शायद देखने की कोशिश करने योग्य है कि वास्तव में इस मामले में तार में क्या भेजा जाता है।
जॉन वेल्डन

1
इससे मुझे मदद मिली। आपको अलग-अलग नाम और पासवर्ड दोनों भागों को अलग-अलग करना चाहिए। यह आपको विशेष वर्ण के साथ किसी भी समस्या से बचने में मदद करेगा। उदाहरण के लिए ":" संकेत हो सकता है जो समस्याओं को भी जन्म देगा।
स्टालिंको

2
जब आप उपयोगकर्ता नाम के रूप में ईमेल पते रखते हैं, तो उपयोगकर्ता नाम में '@' होने के लिए यह भी बहुत बढ़िया है।
रमेश

दो दिनों के संघर्ष के बाद मेरी समस्या को हल करने के लिए बहुत बहुत धन्यवाद ... इस तरह की समस्या का कारण खोजने के लिए वास्तव में कठिन है।
lleiou

62

नोट (नवंबर 2013)

Url को एन्कोड करना (विशेषकर किसी पासवर्ड में कोई विशेष वर्ण) सही समाधान है। नीचे उल्लेख किया है, केवल दूरस्थ रेपो यूआरएल के लिए है के लिए नहीं संकल्प करने के लिए उपयोग किया गया प्रॉक्सी कहा दूरस्थ रेपो यूआरएल।
.netrc

कहा एन्कोडिंग के लिए, " प्रतिशत-एन्कोडिंग " देखें:

प्रतिशत-एन्कोडिंग, जिसे URL एन्कोडिंग के रूप में भी जाना जाता है , कुछ विशेष परिस्थितियों में यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI) में जानकारी एन्कोडिंग के लिए एक तंत्र है। हालाँकि इसे URL एन्कोडिंग के रूप में जाना जाता है, वास्तव में, इसका उपयोग आमतौर पर मुख्य यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI) सेट के भीतर अधिक किया जाता है , जिसमें यूनिफ़ॉर्म रिसोर्स लोकेटर (URL) और यूनिफ़ॉर्म रिसोर्स नेम (URN) दोनों शामिल होते हैं । जैसे, इसका उपयोग एप्लिकेशन / x-www-form-urlencoded मीडिया प्रकार के डेटा की तैयारी में भी किया जाता है , जैसा कि अक्सर HTTP अनुरोधों में HTML फॉर्म डेटा प्रस्तुत करने में किया जाता है ।

प्रतिशत-एन्कोडिंग के बाद सुरक्षित वर्ण:

!   #   $    &   '   (   )   *   +   ,   /   :   ;   =   ?   @   [   ]
%21 %23 %24 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D

मूल उत्तर (मई 2011)

दो टिप्पणियाँ:

  • http (https नहीं) के साथ एक्सेस किए गए सर्वर के लिए पासवर्ड होना ... अजीब है। क्लाइंट और सर्वर के बीच संचार के दौरान पासवर्ड एन्क्रिप्ट नहीं किया गया है;

  • आप निम्न सामग्री के साथ अपने .netrc(या _netrcविंडोज के लिए) सेटअप कर सकते हैं$HOME

    मशीन ipaddress: port
    लॉगिन userId
    पासवर्ड pwd @

दृश्य द्वारा git bbehind द्वारा उपयोग किया गया कर्ल एन्कोडिंग को ठीक प्रकार से संभालेगा, @या नहीं @


उर जवाब के लिए धन्यवाद। सर्वर नेटवर्क ड्राइव था जहां केवल स्वयं और अन्य 2 डेवलपर्स का उपयोग किया जाएगा। इसलिए मुझे लगता है कि एन्क्रिप्शन की कोई आवश्यकता नहीं है। और मैं कभी-कभी netrc का उपयोग करने की कोशिश करूंगा।
कार्तिक

@ कार्तिक: जो आपको http://123@ipaddress:port/...उपयोगकर्ता और पासवर्ड जानकारी जोड़ने के बिना, केवल एक क्लोनिंग पते के रूप में उपयोग करने की अनुमति देगा ।
VonC

8

URL किसी भी असामान्य वर्ण को कूटबद्ध करता है।

Url कोड की सूची।

@ character is %40

मेरी git config फाइल में, मैंने उदाहरण के लिए उपयोगकर्ता नाम 'एनकोड' किया है:

https://myemail%40gmail.com@myrepo.org/api.git


5

उदाहरण के लिए, आपका पासवर्ड पर्यावरण चर में संग्रहीत है GIT_PASSWORD, उपयोगकर्ता नाम - GIT_USERNAMEफिर,

git clone http://${GIT_USERNAME}:$(echo -n $GIT_PASSWORD | hexdump -v -e '"x" 1/1 "%02X"' | tr x %)@repository.git

का स्पष्टीकरण: echo -n $GIT_PASSWORD | hexdump -v -e '"x" 1/1 "%02X"' | tr x %

  1. प्रिंट पासवर्ड: $GIT_PASSWORD<-hello
  2. कन्वर्ट 'हैलो' को हेक्स: hello<-x68x65x6Cx6Cx6F
  3. प्रत्येक 'x' को '%' में बदलें: x68x65x6Cx6Cx6F<-%68%65%6C%6C%6F

स्पष्टीकरण के पहले बिंदु में क्या आपका मतलब $ GIT_REPOSITORY के बजाय $ GIT_ PASSWORD का उपयोग करना था?
निंजू बोहरा

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