2014-04-02 5 views
18

मैं विंडोज पर Git उपयोग कर रहा हूँ पर प्रॉक्सी पासवर्ड भंडारण, एक कॉर्पोरेट नेटवर्क जहाँ मैं मूल प्रमाणीकरण के साथ एक HTTP प्रॉक्सी के पीछे कर रहा हूँ पर बिना,। आउटबाउंड एसएसएच काम नहीं करता है, इसलिए मुझे प्रॉक्सी के माध्यम से HTTPS का उपयोग करना होगा।, विंडोज पर Git का उपयोग करते हुए एक HTTP प्रॉक्सी के पीछे डिस्क

मुझे http://[username]:[password]@[proxy]:[port] के रूप में सेटिंग्स को कॉन्फ़िगर करने के लिए git config http.proxy का उपयोग करने के बारे में पता है।

बहरहाल, यह एक साझा मशीन है विशेष रूप से के रूप में, मैं अपने पासवर्ड मेरी .gitconfig में संग्रहीत नहीं करना चाहते। साथ ही, git config आदेश का उपयोग मेरी .gitconfig बदलते मेरी पार्टी के इतिहास में अपना पासवर्ड छोड़ देता है, तो भी मैं सत्र के अंत में मेरी .gitconfig स्पष्ट करने के लिए याद है, मैं लगभग निश्चित रूप से और साथ ही मेरी इतिहास साफ करना भूल सकता हूँ।

मैंने पासवर्ड के बिना http.proxy को सेट करने की कोशिश की है, व्यर्थ उम्मीद है कि जब मैं धक्का/खींचने की कोशिश करता हूं तो मुझे अपने पासवर्ड के लिए पूछने के लिए एक संकेत मिलेगा, लेकिन मुझे केवल 407 प्रॉक्सी प्रमाणीकरण आवश्यक है। सभी जानकारी मैंने पाया ऑनलाइन या तो NTLM प्रॉक्सी के साथ .gitconfig में प्लेन में सहेजे गए पासवर्ड या डील होने के साथ मुद्दों की अनदेखी करने लगती है।

हर बार जब मुझे कनेक्ट करने की आवश्यकता होती है तो मुझे अपने प्रॉक्सी विवरण टाइप करने में काफी खुशी होती है - इस समय सबसे अच्छा समाधान मैं देख सकता हूं कि एक रैपर स्क्रिप्ट लिख रहा है जो मेरे पासवर्ड के लिए संकेत देगा और इसे कॉल करते समय पर्यावरण चर के रूप में सेट करेगा git उचित। क्या यह एक सभ्य समाधान है, और क्या स्क्रिप्ट में एक कॉल के लिए पर्यावरण चर सेट करने के लिए कोई सुरक्षा प्रभाव है? अधिमानतः, क्या कोई अंतर्निहित सेटिंग्स या मौजूदा उपकरण हैं जिनका मैं उपयोग कर सकता हूं?

उत्तर

16
इसके बजाय Git सेटिंग का उपयोग कर, आप भी वातावरण चर (आप बस अपने सत्र के लिए सेट कर सकते हैं कि) का उपयोग कर सकते

, this answer में वर्णित हैं:

set http_proxy=http://username:[email protected]:port 
set https_proxy=http://username:[email protected]:port 
set no_proxy=localhost,.my.company 

तो अपने आवरण स्क्रिप्ट कर सकते थे, बजाय .gitconfig को संशोधित करने की (और सादा पाठ में अपना पासवर्ड छोड़कर) मांग पर पर्यावरण चर सेट करें, बस अपने वर्तमान सत्र के लिए।

2

VonC का जवाब हमेशा समस्या का समाधान नहीं है। मैं क्यों नहीं पता है, लेकिन यह प्रॉक्सी सर्वर पर निर्भर हो सकता है - या शायद यह कुछ अन्य मुद्दे alltogether है?

यह http:// के साथ भंडार के git:// प्रोटोकॉल को प्रतिस्थापित करने में मदद कर सकता है।

नोट:

set http_proxy=http://username:[email protected]:port 
set https_proxy=http://username:[email protected]:port 

उदाहरण के लिए, क्लोन संगमरमर के स्थिर Git आमतौर पर इस तरह क्लोन किया जाएगा (marble documentation से): VonC के जवाब के रूप में, आप पहली बार http(s)_proxy वातावरण चर सेटअप करना होगा

Git क्लोन बी अनुप्रयोग/15.12 Git: //anongit.kde.org/marble ~/संगमरमर/सूत्रों

में खिड़कियों 'cmd (यह मानते हुए http_proxy स्थापित किया गया है), तो आप के बजाय http[s]:// उपयोग करने के लिए हो सकता है:

git clone -b Applications/15.12 http://anongit.kde.org/marble ~/marble/sources 
-1

आप प्रॉक्सी सर्वर के पीछे हैं, तो इस का पालन करें।

सुनिश्चित करें कि पोर्ट 9418 आपके फ़ायरवॉल rules.Ask नेटवर्क व्यवस्थापक

अनसेट प्रॉक्सी से बाहर रखा गया है कि वह पहले से सेट किया गया है:

  • Git config --global --unset http .proxy
  • गिट कॉन्फ़िगरेशन --global --unset https.proxy

सेट उचित प्रॉक्सी:

आम त्रुटियाँ:

  • 502: यूआरएल/आईपी आपके नेटवर्क से पहुंच योग्य नहीं है।
  • 407: प्रॉक्सी प्रमाणीकरण अस्वीकार कर दिया गया।
  • 80: प्रॉक्सी ठीक से सेट नहीं किया गया है।
7
के बाद से

Git 2.8.0

git config --global http.proxy http://[user]@proxyhost:port 
git config --global credential.helper wincred 
संबंधित मुद्दे