जब मैं HTTP और उपयोगकर्ता के पासवर्ड के साथ दूरस्थ रिपॉजिटरी को क्लोन करने के लिए Git का उपयोग कर रहा हूं, तो क्या विंडोज पर .netrc फ़ाइल का उपयोग करना संभव है?
जब मैं HTTP और उपयोगकर्ता के पासवर्ड के साथ दूरस्थ रिपॉजिटरी को क्लोन करने के लिए Git का उपयोग कर रहा हूं, तो क्या विंडोज पर .netrc फ़ाइल का उपयोग करना संभव है?
जवाबों:
क्या
.netrcविंडोज पर फ़ाइल का उपयोग करना संभव है ?
हां आपको जरूर:
%HOME% (पूर्व Git 2.0, Git 2.0+ के साथ अब आवश्यक नहीं)_netrcफ़ाइल रखो%HOME%यदि आप CMDसत्र में Windows 7/10 का उपयोग कर रहे हैं , तो टाइप करें:
setx HOME %USERPROFILE%
और %HOME%' C:\Users\"username"' पर सेट हो जाएगा ।
उस फ़ोल्डर पर जाएं ( cd %HOME%) और ' _netrc' नामक एक फाइल बनाएं ।
नोट: फिर से, विंडोज के लिए, आपको एक ' _netrc' फ़ाइल की आवश्यकता है , न कि '.netrc ' फाइल की।
इसकी सामग्री काफी मानक है ( <examples>अपने मूल्यों के साथ बदलें ):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
ल्यूक टिप्पणियों में उल्लेख करता है:
विंडोज 7 पर एमएससिट के नवीनतम संस्करण का उपयोग करते हुए, मुझे
HOMEपर्यावरण चर सेट करने की आवश्यकता नहीं थी ।_netrcअकेले फ़ाइल चाल किया था।
यह वास्तव में है, जो मैंने " जीथब " करने की कोशिश करते हुएinstall.ssh उल्लेख किया है , वहाँ नहीं है ":
git-cmd.batmsysgit में शामिल %HOME%पर्यावरण चर सेट करता है :
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者 टिप्पणियों में विश्वास है कि "ऐसा लगता है कि यह http प्रोटोकॉल के लिए काम नहीं करेगा"
हालाँकि, मैंने उत्तर दिया कि netrcइसका उपयोग curlHTTP प्रोटोकॉल के लिए किया जाता है , जैसा कि इस उदाहरण में दिखाया गया है ( netrcपृष्ठ में ' ' देखें)। यहाँ HTTP प्रोटोकॉल के साथ भी प्रयोग किया जाता है: " _netrc/ .netrcवैकल्पिकcURL "।
netrcविंडोज पर समर्थन के साथ एक सामान्य जाल यह है कि अगर इसका उपयोग कोई उपयोगकर्ता नाम निर्दिष्ट करता है तो git बाईपास करेगा।
उदाहरण के लिए, यदि आपकी .git/configफ़ाइल में निम्न शामिल हैं:
[दूरस्थ "मूल"]
लाने = = refs / सिर / *: refs / remotes / मूल / *
url = https: //bob@code.google.com/p/my-project/
Git _netrcआपके उपयोगकर्ता नाम को हटाने के लिए आपके क्रेडेंशियल्स को हल नहीं करेगा , जैसे:
[दूरस्थ "मूल"]
लाने = = refs / सिर / *: refs / remotes / मूल / *
url = https://code.google.com/p/my-project/
वैकल्पिक समाधान: के साथ Git संस्करण 1.7.9+ (जनवरी 2012): इस उत्तर से मार्क Longair विवरण क्रेडेंशियल कैश तंत्र जो भी आप के लिए अनुमति देता नहीं जैसा कि नीचे दिखाया सादे पाठ में आपका पासवर्ड संग्रहीत।
साथ Git 1.8.3 (अप्रैल 2013):
अब आप एक एन्क्रिप्टेड .netrc (के साथ gpg) का उपयोग कर सकते हैं ।
विंडोज पर: %HOME%/_netrc( _, 'नहीं .')
फाइलों के साथ बातचीत करने के लिए एक नया रीड-ओनली क्रेडेंशियल हेल्पर (इन
contrib/).netrc/.authinfoजोड़ा गया है।
वह स्क्रिप्ट आपको सादे टेक्स्ट फ़ाइल में संग्रहीत अपने क्रेडेंशियल्स के मुद्दे से बचने के लिए, gpg-एन्क्रिप्टेड netrc फ़ाइलों का उपयोग करने की अनुमति देगा ।
.gpgएक्सटेंशन वाली फाइलों को पार्स करने से पहले GPG द्वारा डिक्रिप्ट किया जाएगा।
एकाधिक-fतर्क ठीक हैं। उन्हें क्रम में संसाधित किया जाता है, और पाया गया पहला मिलान प्रविष्टि क्रेडेंशियल सहायक प्रोटोकॉल के माध्यम से लौटाया जाता है।जब कोई
-fविकल्प दिया जाता है,.authinfo.gpg,.netrc.gpg,.authinfo, और.netrcअपने घर निर्देशिका में फ़ाइलों को इस क्रम में किया जाता है।
इस विश्वसनीय सहायक को सक्षम करने के लिए:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(ध्यान दें कि Git
git-credential-सहायक नाम के लिए " " आगे बढ़ेगा और पथ में इसे खोजेगा।)
# and if you want lots of debugging info:
git config credential.helper '$shortname -f AUTHFILE -d'
#or to see the files opened and data found:
git config credential.helper '$shortname -f AUTHFILE -v'
" का उपयोग करते समय पासवर्ड टाइपिंग को छोड़ने का एक तरीका हैhttps:// github " पर एक पूर्ण उदाहरण देखें
Git 2.18+ (जून 2018) के साथ, अब आप एन्क्रिप्टेड .netrcफ़ाइल को डिक्रिप्ट करने के लिए उपयोग किए जाने वाले GPG प्रोग्राम को कस्टमाइज़ कर सकते हैं ।
देखें प्रतिबद्ध 786ef50 , f07eeed प्रतिबद्ध द्वारा (12 मई 2018) लुइस Marsano ( ``) ।
(द्वारा विलय Junio सी Hamano - gitster- में प्रतिबद्ध 017b7c5 , 30 मई 2018)
git-credential-netrc:gpgविकल्प स्वीकार करें
git-credential-netrcgpggpg.program विकल्प की परवाह किए बिना ' ' के साथ डिक्रिप्ट करने के लिए हार्डकोड किया गया था ।
यह डिबियन जैसे वितरण पर एक समस्या है जो आधुनिक GnuPG को कुछ और कहते हैं, जैसे 'gpg2'
http.proxyअपने पर्यावरण चर में परिभाषित करने की आवश्यकता हो सकती है । या, इसके विपरीत, अपने सर्वर को एक no_proxyचर में जोड़ने के लिए , WAN पर LAN सर्वर तक पहुँचने की कोशिश से बचने के लिए।
msysgitविंडोज 7 पर नवीनतम संस्करण का उपयोग करते हुए , मुझे HOMEपर्यावरण चर सेट करने की आवश्यकता नहीं थी । _netrcअकेले फ़ाइल चाल किया था।
आप इसके लिए Windows क्रेडेंशियल प्रबंधक में Git पासवर्ड सहेजने के लिए Windows के लिए Git क्रेडेंशियल प्रबंधक भी स्थापित कर सकते हैं _netrc। यह पासवर्ड स्टोर करने का अधिक सुरक्षित तरीका है।
.netrcफ़ाइल में अपने क्रेडेंशियल्स को स्टोर कर सकते हैं । आपको सत्र के दौरान एक बार भी उन क्रेडेंशियल को दर्ज नहीं करना पड़ेगा।
यह Git को HTTPS का उपयोग करके प्रमाणित करने देगा .netrc:
_netrcऔर में स्थित होना चाहिए c:\Users\<username>।HOME=%USERPROFILE%(नियंत्रण कक्ष में सिस्टम विकल्प का उपयोग करके सिस्टम-वाइड वातावरण चर सेट करें। विंडोज के संस्करण के आधार पर, आपको "उन्नत विकल्प" चुनने की आवश्यकता हो सकती है।)।_netrcफ़ाइल में संग्रहीत पासवर्ड में स्थान नहीं हो सकता (पासवर्ड काम नहीं करेगा)।मैं उपयोग करने का एक तरीका पोस्ट कर रहा हूं _netrc साइट www.course.com से सामग्री डाउनलोड करने हूं।
अगर कोई www.coursera.com पर ओपन-क्लास सामग्री डाउनलोड करने के लिए coursera-dl का उपयोग करने जा रहा है, और Windows OS पर कोई व्यक्ति ".netrc" जैसी फ़ाइल का उपयोग करना चाहता है, जो कि जैसे- Unix OS में है। सुविधा के -nबदले विकल्प -U <username> -P <password>। वह ऐसा कर सकता है:
Windows OS पर होम पथ की जाँच करें: setx HOME %USERPROFILE%( VonC के उत्तर को देखें )। यह HOMEपर्यावरण चर के रूप में बचाएगा C:\Users\"username"।
निर्देशिका में पता लगाएँ C:\Users\"username"और एक फ़ाइल नाम बनाएँ _netrc। नोट: कोई प्रत्यय नहीं है।
सामग्री इस प्रकार है:machine coursera-dl login <user> password <pass>
coursera-dl -n --path PATH <course name>क्लास सामग्रियों को डाउनलोड करने के लिए एक कमांड का उपयोग करें । इस पृष्ठ के लिए अधिक शोध-विकल्प विकल्प विवरण ।
HOMEपर्यावरण चर महत्वपूर्ण है, क्योंकि यह डिफ़ॉल्ट रूप से विंडोज पर परिभाषित नहीं है। आप उस चर को अपनी इच्छित निर्देशिका में सेट कर सकते हैं (यह होना जरूरी नहीं हैC:\users\mylogin): उदाहरण के लिए, काम पर, मैंने इसे अपने विंडोज खाते से जुड़े अपने निजी रिमोट डिस्क पर सेट किया है, जो मुझे बिना खोए बिना डेस्कटॉप स्विच करने की अनुमति देता है मेरी.sshया_netrcसेटिंग्स।