मैं अपने SSH पासवर्ड को फिर से दर्ज किए बिना `गिट पुल` का प्रदर्शन कैसे कर सकता हूं?


96

क्या यह संभव है git/sshकि मैं हर बार जब मैं अपना प्रदर्शन करना चाहता हूं, तो मुझे अपना पासफ़्रेज़ दर्ज नहीं करना पड़ेगा git pull? ध्यान दें कि रेपो गितुब पर एक निजी है।

या, वैकल्पिक रूप से, निजी गिथब रेपो से कोड तैनाती को स्वचालित करने के लिए सबसे अच्छा अभ्यास क्या होगा?

अतिरिक्त विवरण: फेडोरा पर आधारित एक सार्वजनिक एएमआई चलाने वाले ईसी 2 उदाहरण।


2
के संभावित डुप्लिकेट से अधिक SSH कॉन्फ़िगर Git
meagar

आपके पास इस समस्या का समाधान है?
निम

के रूप में git 2.11+ (Q4 2016) libsecret का उपयोग करना एक और तरीका है: stackoverflow.com/a/40312117/8477066
हैल्के वालिंगा

जवाबों:


69

इस लिंक पर एक नजर डालिए https://help.github.com/articles/working-with-ssh-key-passphrases/

लेकिन जब भी मैं कुंजी का उपयोग करता हूं, मैं हर बार एक लंबा पासफ़्रेज़ दर्ज नहीं करना चाहता!

न ही मैं! शुक्र है, निफ्टी थोड़ा उपकरण है ssh-agentजो आपके पासफ़्रेज़ को सुरक्षित रूप से सहेज सकता है ताकि आपको इसे फिर से दर्ज न करना पड़े। यदि आप OSX तेंदुए पर हैं या बाद में आपकी कुंजी को सिस्टम के किचेन में सहेजा जा सकता है ताकि आपका जीवन और भी आसान हो सके। जब आप लॉग इन करते हैं तो अधिकांश लिनक्स इंस्टॉलेशन स्वचालित रूप से आपके लिए ssh-Agent शुरू कर देंगे।


3
17.7k की प्रतिष्ठा के साथ किसी को जवाब देने में थोड़ा घबराहट; क्या मैंने इस प्रश्न का गलत अर्थ
निकाला

3
बेचैन? निश्चिंत रहें: अधिकांश लोगों के यहाँ बहुत अच्छी तरह से काम किया जाता है ... और जो लोग ठीक नहीं हैं, उन्हें मुझसे बड़ी समस्याएं हैं :)
jldupont

2
यह लिंक यह समझाने में सहायक था कि आपके पासफ़्रेज़ को सहेजने के लिए कौन सी आज्ञाएँ चलती हैं ssh-agent: rabexc.org/posts/use-ssh-agent
Mateus Gondim

मुझे न तो चाबियां इस्तेमाल करनी हैं। सरल मैं उपयोगकर्ता पास है और मैं इसे git ग्राहक पक्ष पर सहेजना चाहता हूं
nim

लिंक केवल मैक / विधवा विकल्प क्यों प्रदान करता है? मैं पास को पुन: प्रस्तुत किए बिना यूनिक्स सर्वर पर पुल बनाना चाहता हूं। यह एक ऐतिहासिक परियोजना के लिए काम करने में कामयाब रहा, लेकिन यह नहीं बता सकता कि मैंने वहां क्या किया। क्या यह है कि जब आप एक दूरस्थ यूनिक्स मशीन पर जाते हैं, तो कुंजी को पास किया जाता है और इसके बजाय इसका उपयोग गिट पुल (या निजी कंपोजर वीसीएस) कुंजी के रूप में किया जाता है? मुझे विश्वास है कि मैं यहां कुछ गलत समझ रहा हूं। किसी भी तरह की मदद की सराहना की :)
trainoasis

29

मैंने यहाँ वर्णित पासवर्ड कैशिंग सक्षम किया है:

https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

एक महीने के लिए पासवर्ड कैश करने के लिए:

git config --global credential.helper 'cache --timeout=2628000'

धन्यवाद, temuri- मैं इस सटीक विवरण के लिए हर जगह देख रहा हूं। यह काम नहीं कर रहा था, लेकिन दस्तावेज़ीकरण प्रतीत होता है कि यह केवल HTTPS के लिए नहीं है।
माइक एमरी

2
यदि आप दूरस्थ Git रेपो के SSH- आधारित URL के लिए पासवर्ड ( कुंजी फ़ाइल के साथ पासफ़्रेज़ नहीं ) का उपयोग करते हैं , तो आप पासवर्ड को बिल्कुल भी नहीं बचा सकते हैं। लेकिन मैंने देखा कि किसी भी git कमांड को जारी करने के बाद, आप तुरंत पासवर्ड टाइप कर सकते हैं और एंटर दबा सकते हैं । आपको पासवर्ड प्रांप्ट होने की प्रतीक्षा करने की आवश्यकता नहीं है।
ADTC

1
git अभी भी पास पूछती है
nim

12

इसे इस्तेमाल करे:

git config credential.helper store

आपको अपना पासवर्ड एक बार दर्ज करना होगा, उसके बाद इसे रूट के अंदर एक फ़ोल्डर में संग्रहीत किया जाएगा।

जैसा कि टिप्पणी में कहा गया है, यह SSH पासवर्ड के लिए, केवल HTTPS पासवर्ड के लिए काम नहीं करता है।


1
@nim का मतलब यह नहीं है कि आपको उत्तर को रद्द कर देना चाहिए, मैंने सुझाव दिया है कि मेरे लिए क्या काम किया है, और किसी को यह उपयोगी हो सकता है।
यांकी

यह कोई सेव पासवर्ड नहीं है। मैं इसे आज़माता हूँ और परिणाम कुछ भी नहीं। यदि आप इस ssh को पसंद करते हैं: // name @ ip / path
nim

1
यह काम करता है यदि आप एचटीटीपी बेसिक नॉर्चर पासवर्ड स्टोर करना चाहते हैं।
फिल

4
यह SSH पासवर्ड के लिए, केवल HTTPS पासवर्ड के लिए काम नहीं करता है।
एलीएजर बर्लिन

https के लिए अच्छा काम करता है। आपको बस इसे टाइप करने की आवश्यकता है। अगली बार जब आपको अंतिम बार पैराफ़्रेस्स दर्ज करने की आवश्यकता होगी। अगली बार, पासवर्ड को git द्वारा याद किया जाना चाहिए।
जोनाथन

7

आपकी स्थिति अब तय हो गई है, हालांकि मेरे लिए यह तथ्य था कि मेरे पास एक से अधिक कुंजी थी ~/.ssh/

समस्या को हल करने के लिए मुझे एक फाइल बनानी होगी जिसे ~/.ssh/configलाइन में जोड़ा जाएगा:

IdentityFile ~/.ssh/my_key2_rsa

~/.ssh/my_key2_rsaमेरी चाबी कहाँ है


1
इसके लिए धन्यवाद, मेरी id_rsa और id_rsa.pubफाइलों का एक कस्टम नाम है यही कारण है कि गिट कभी इसे पहचान नहीं पाएंगे। रेफरी: linux.die.net/man/5/ssh_config
lasec0203

5

मुझे नहीं पता कि किसी ने भी अभी तक इसकी सूचना क्यों नहीं दी है। लेकिन सबसे सरल तरीका केवल AddKeysToAgent yes.ssh / config फ़ाइल के शीर्ष पर एक एकल पंक्ति जोड़ना होगा । संभोग ssh-agentपहले से चल रहा होगा। यदि इसका रनिंग नहीं है ( ssh-agentटर्मिनल पर कमांड द्वारा चेक करें ), तो बस इसे चलाएंeval $(ssh-agent)

मैं पुष्टि कर सकता हूं कि यह काम करता है, क्योंकि मेरे प्रोजेक्ट में बहुत सारे सबमॉड्यूल हैं और प्रत्येक सबमॉड्यूल के क्लोन होने के कारण, मुझे अपने ssh पासफ़्रेज़ में टाइप करना था। उपरोक्त चाल के बाद, मुझे अब ऐसा करने की आवश्यकता नहीं है।

समाधान का स्रोत /ubuntu/362280/enter-ssh-passphrase-once/853578#853578 है


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