Mercurial के साथ उपयोगकर्ता नाम और पासवर्ड कैसे बचाएं?




hgrc (6)

ऐसा करने के तीन तरीके हैं: .hgrc फ़ाइल का उपयोग करें, एसएसएच का उपयोग करें या कीरिंग एक्सटेंशन का उपयोग करें


1. अनिवार्य तरीका - अपनी ~ / .hgrc फ़ाइल अपडेट करें

प्रारूप जो मेरे लिए काम करता है (मेरी ~ / .hgrc फ़ाइल में) यह है

[ui]
username=Chris McCauley <[email protected]>

[auth]
repo.prefix = https://server/repo_path
repo.username = username
repo.password = password


आप एक अद्वितीय टैग तैयार करके उपसर्ग, उपयोगकर्ता नाम, पासवर्ड के तीन गुना जोड़कर जितना चाहें उतने रिपो को कॉन्फ़िगर कर सकते हैं।

यह केवल Mercurial 1.3 में काम करता है और जाहिर है आपका उपयोगकर्ता नाम और पासवर्ड सादे पाठ में हैं - अच्छा नहीं।


2. सुरक्षित तरीका - पासवर्ड का उपयोग करके AVOID को एसएसएच का उपयोग करें

Mercurial पूरी तरह से एसएसएच का समर्थन करता है ताकि हम पासवर्ड के बिना सर्वर में लॉग इन करने के लिए एसएसएच की क्षमता का लाभ उठा सकें - आप एक बार स्वयं कॉन्फ़िगरेशन प्रमाणपत्र प्रदान करने के लिए कॉन्फ़िगरेशन करते हैं। यह वही करने का सबसे सुरक्षित तरीका है जो आप चाहते हैं।


आप यहां पासवर्ड रहित लॉगिन को कॉन्फ़िगर करने के बारे में अधिक जानकारी प्राप्त कर सकते हैं


3. कीरिंग एक्सटेंशन

यदि आप एक सुरक्षित विकल्प चाहते हैं, लेकिन एसएसएच से परिचित नहीं हैं, तो कोशिश क्यों नहीं करें?

दस्तावेज़ों से ...

एक्सटेंशन को दिए गए रिमोट रिपोजिटरी से पहले पुल / पुश पर HTTP पासवर्ड के लिए संकेत मिलता है (जैसे कि यह डिफ़ॉल्ट रूप से किया जाता है), लेकिन पासवर्ड डेटाबेस में पासवर्ड (उपयोगकर्ता नाम और रिमोट रिपोजिटरी यूआरएल के संयोजन द्वारा कुंजी) बचाता है। अगले भाग पर यह .hg / hgrc में उपयोगकर्ता नाम के लिए जांचता है, फिर पासवर्ड डेटाबेस में उपयुक्त पासवर्ड के लिए, और यदि पाया जाता है तो उन प्रमाणपत्रों का उपयोग करता है।

यहां अधिक विस्तृत जानकारी here

मैंने व्यक्तिगत परियोजना में Mercurial का उपयोग किया, और जब भी मैं सर्वर पर कुछ धक्का देना चाहता हूं, तो मैं अपना उपयोगकर्ता नाम और पासवर्ड टाइप कर रहा हूं।

मैंने अपनी होम निर्देशिका में .hgrc फ़ाइल में निम्नलिखित जोड़ने का प्रयास किया, लेकिन ऐसा लगता है कि इसे पूरी तरह से अनदेखा किया जाता है।

[ui]
username = MY_USER_NAME
password = MY_PASSWORD

यह सही तरीके से कैसे करें?


MacPorts का उपयोग कर मैक ओएसएक्स पर mercurial_keyring स्थापना:

sudo port install py-keyring
sudo port install py-mercurial_keyring

निम्नलिखित में जोड़ें ~ / .hgrc:

# Add your username if you haven't already done so.
[ui]
username = [email protected]

[extensions]
mercurial_keyring =

एक नौसिखिया उपयोगकर्ता को समझाया / स्पष्ट शर्तों के ऊपर कोई नहीं। वे शर्तों से भ्रमित हो जाते हैं

.hg / hgrc - यह फ़ाइल रिपोजिटरी के लिए स्थानीय / वर्कस्पेस स्थान / वास्तविक भंडार के .hg फ़ोल्डर में उपयोग की जाती है।

~ / .hgrc - यह फ़ाइल नीचे दी गई से अलग है। यह फ़ाइल ~ या घर निर्देशिका पर रहता है।

myremote.xxxx = ..... bb.xxxx = ......

Mercurial keyring एक्सटेंशन का उपयोग करते समय यह [auth] अनुभाग / निर्देश के तहत पंक्तियों में से एक है। सुनिश्चित करें कि आपके द्वारा रखा गया सर्वर नाम, "एचजी क्लोन" करते समय आप जो भी उपयोग करते हैं उसके साथ मेल खाता है अन्यथा कीरिंग कहेंगे, उपयोगकर्ता नहीं मिला। नीचे दी गई रेखा में बीबी या myremote, "उपनाम नाम" हैं जो आपको "एचजी क्लोन http: /.../../ repo1 बीबी या myremote" करते समय देना होगा अन्यथा, यह काम नहीं करेगा या आपको यह सुनिश्चित करना होगा कि आपका स्थानीय भंडार की .hg / hgrc फ़ाइल में समान उपनाम होते हैं, यानी (आपने पिछला पैरामीटर के रूप में एचजी क्लोन करते समय क्या दिया था)।

स्पष्ट विवरण के लिए निम्नलिखित लिंक पीएस, जल्दी लिखित व्याकरण के लिए खेद है।

उदा: यदि उपयोगकर्ता की होम निर्देशिका में ~ / .hgrc (लिनक्स / यूनिक्स में उपयोगकर्ता की होम निर्देशिका) या mercurial.ini के अंदर, निम्न पंक्ति और यदि आप करते हैं

`"hg clone http://.../.../reponame myremote"`

, तो आपको प्रति http repo लिंक से एक से अधिक बार उपयोगकर्ता प्रमाण-पत्रों के लिए कभी भी संकेत नहीं दिया जाएगा। "Mercurial_keyring =" या "hgext.mercurial_keyring = /path/to/your/mercurial_keyring.py" के लिए एक पंक्ति [एक्सटेंशन] के अंतर्गत ~ / .hgrc में .. इन पंक्तियों में से एक होना चाहिए।

[auth]
myremote.schemes = http https
myremote.prefix = tshusncdurvm99/hg
myremote.username = c123456

मैं PREFIX प्रॉपर्टी को सेट करने का तरीका जानने का प्रयास कर रहा हूं ताकि उपयोगकर्ता बिना किसी उपयोगकर्ता नाम / पासवर्ड के किसी भी एचजी ऑपरेशंस को क्लोन कर या निष्पादित कर सके और http: // .... / ... में जो भी उल्लेख किया है उसके बारे में चिंता किए बिना एचजी रेपो लिंक का उपयोग करते समय servername। यह आईपी, servername या सर्वर के एफक्यूडीएन हो सकता है


एक सरल हैक अपने प्रोजेक्ट की .hg/hgrc फ़ाइल में पुश यूआरएल में उपयोगकर्ता नाम और पासवर्ड जोड़ना है:

[paths]
default = http://username:[email protected]/myproject

(ध्यान दें कि इस तरह आप सादे पाठ में पासवर्ड स्टोर करते हैं)

यदि आप एक ही डोमेन के तहत कई परियोजनाओं पर काम कर रहे हैं, तो आप सभी परियोजनाओं के लिए इसे दोहराने से बचने के लिए, अपनी ~/.hgrc फ़ाइल में एक पुनर्लेखन नियम जोड़ना चाहेंगे:

[rewrite]
http.//mydomain.com = http://username:[email protected]

दोबारा, चूंकि पासवर्ड सादा पाठ में संग्रहीत होता है, इसलिए मैं आमतौर पर केवल अपना उपयोगकर्ता नाम संग्रहीत करता हूं।

यदि आप जीनोम के तहत काम कर रहे हैं, तो मैं समझता हूं कि Mercurial और gnome Keyring को यहां कैसे एकीकृत किया जाए:

http://aloiroberto.wordpress.com/2009/09/16/mercurial-gnome-keyring-integration/


यदि आप TortoiseHg का उपयोग कर रहे हैं तो आपको संलग्न स्क्रीन शॉट में दिखाए गए इन तीन चरणों को निष्पादित करना होगा, यह आपके द्वारा काम कर रहे विशिष्ट भंडार के लिए आपके प्रमाण-पत्र जोड़ देगा।

वैश्विक सेटिंग्स जोड़ने के लिए आप फ़ाइल C: \ users \ user.name \ mercurial.ini फ़ाइल तक पहुंच सकते हैं और अनुभाग जोड़ सकते हैं

[auth]
bb.prefix=https://bitbucket.org/zambezia/packagemanager
bb.username = $username
bb.password = $password

उम्मीद है की यह मदद करेगा।


हालांकि यह आपकी स्थिति में काम कर सकता है या नहीं भी हो सकता है, लेकिन मुझे पुटी के पेजेंट का उपयोग करके सार्वजनिक / निजी कुंजी उत्पन्न करने में उपयोगी पाया गया है।

यदि आप बिटबकेट (.org) के साथ भी काम कर रहे हैं तो आपको अपने उपयोगकर्ता खाते में सार्वजनिक कुंजी प्रदान करने की क्षमता देनी चाहिए और उसके बाद रिपॉजिटरी तक पहुंचने वाले आदेश स्वचालित रूप से सुरक्षित हो जाएंगे।

यदि रीबूट पर पेजेंट आपके लिए प्रारंभ नहीं होता है, तो आप अपने विंडोज़ "स्टार्ट मेनू" पर पेजेंट के लिए एक शॉर्टकट जोड़ सकते हैं और शॉर्टकट को आपकी निजी (.ppk) फ़ाइल के स्थान के साथ 'गुण' पॉप्युलेट करने की आवश्यकता हो सकती है ।

इस जगह के साथ Mercurial और आपके स्थानीय भंडार एसएसएच प्रारूप का उपयोग कर पुश / पुल करने के लिए स्थापित करने की आवश्यकता होगी।

विंडोज या मैक / लिनक्स के लिए Atlassian की साइट पर कुछ विस्तृत निर्देश दिए गए हैं।

आपको इसके लिए मेरा शब्द नहीं लेना है और इसमें कोई संदेह नहीं है कि इसे करने के अन्य तरीके हैं। शायद यहां वर्णित ये कदम आपके लिए अधिक हैं:

  1. PuttyGen प्रारंभ से शुरू करें -> PUTTY-> PuttyGen
  2. एक नई कुंजी उत्पन्न करें और इसे पासफ्रेज़ के बिना .ppk फ़ाइल के रूप में सहेजें
  3. उस सर्वर पर लॉगिन करने के लिए पुट्टी का उपयोग करें जिसे आप कनेक्ट करना चाहते हैं
  4. PuttyGen से सार्वजनिक कुंजी टेक्स्ट ~ / .ssh / अधिकृत_keys के पाठ में संलग्न करें
  5. स्टार्ट -> पुटी टू स्टार्ट -> स्टार्टअप से अपनी .ppk फ़ाइल में शॉर्टकट बनाएं
  6. स्टार्टअप मेनू से .ppk शॉर्टकट का चयन करें (यह प्रत्येक स्टार्टअप पर स्वचालित रूप से हो जाएगा)
  7. सिस्टम ट्रे में पेजेंट आइकन देखें? राइट-क्लिक करें और "नया सत्र" चुनें
  8. "होस्ट नाम" फ़ील्ड में उपयोगकर्ता नाम @ होस्टनाम दर्ज करें
  9. अब आप स्वचालित रूप से लॉग इन करेंगे।




hgrc