Git क्लोन / पुल लगातार "कैश में स्टोर कुंजी?"


159

मैं अपने BitBucket खाते से अपने विंडोज 10 लैपटॉप (GitBash को चलाने) के लिए एक रेपो क्लोन करने का प्रयास कर रहा हूं। मैंने कनेक्ट करने के लिए आवश्यक सभी चरणों को पूरा कर लिया है (मेरी SSH कुंजी सेट करें, सफलतापूर्वक SSHing git@bitbucket.org, आदि द्वारा सत्यापित)। हालांकि, जब भी मैं रेपो का क्लोन बनाने का प्रयास करता हूं, तो प्रॉम्प्ट लगातार यह पुष्टि करता है कि मैं बिटबकेट की कुंजी को कैश करना चाहता हूं।

User@Laptop MINGW64 /C/Repos
$ git clone git@bitbucket.org:mygbid/test.git
Cloning into 'test'...
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) y

कोई भी फाइल क्लोन नहीं की जाती है, और परिणाम एक खाली रेपो है। इस रेपो से एक git पुल ओरिजनल मास्टर शुरू करने की कोशिश करने के लिए भी कुंजी को कैश करने के लिए कहा जाता है, फिर कोई प्रतिक्रिया नहीं देता है। जब मैं एक परीक्षण एसएसएच करता हूं, तो कुंजी को कैश करने के लिए नहीं कहने के बावजूद, जीआईटी ऑपरेशन हमेशा असफल होने से पहले हर बार कुंजी के लिए पूछते हैं।

साथ काम करने के लिए कोई त्रुटि संदेश नहीं है, मैं वास्तव में एक नुकसान में हूं जो गलत है। मैंने बहुत छोटे लोगों सहित कई रिपोज की कोशिश की है, जिसमें कोई सफलता नहीं है।

जवाबों:


188

विंडोज 10 पर एक रेपो क्लोनिंग करते समय भी मुझे यह समस्या थी।

मैंने प्रश्न में (आपके मामले में: bitbucket.org) सर्वर पर पुट्टी जीयूआई से एसएसएच तक का उपयोग करके इसे प्राप्त किया, फिर 'हाँ' पर क्लिक किया जब संकेत पूछता है कि क्या आप सर्वर को कैश में सहेजना चाहते हैं। क्लोन कमांड चलाना फिर मेरे लिए काम किया!


20
यह सीधे मेरे लिए इसे ठीक नहीं करता था, लेकिन इसने मुझे यह एहसास दिलाया कि समस्या ओपनएसएसएच के बजाय एसटीई प्रमाणीकरण के लिए पुट्टी का उपयोग करके गिटबैश से संबंधित थी। जब मैंने GIT_SSH सिस्टम वेरिएबल को डिलीट किया और GitBash को रीसेट किया तो सबकुछ ठीक हो गया। धन्यवाद!
MarathonStudios

2
का उपयोग puttyजोड़ने के लिए githubकैश में महत्वपूर्ण मेरे लिए काम किया
ओक

4
इसने मेरे लिए विन 7 पर कमांड कंसोल का उपयोग करके काम किया। काश कोई मुझे बता सकता कि ऐसा सिर्फ एक वर्कअराउंड के बजाय क्यों हुआ।
at१६ पर सोलसब्र

1
क्या कोई बता सकता है कि उपरोक्त उपाय कैसे किया जाए
श्रेया मेहता

2
@ श्रेयण मेहता सिर्फ खुले तौर पर पोटीन, होस्ट नाम पेस्ट git@github.com के तहत (या जो भी होस्ट आप उपयोग कर रहे हैं)। एसएसएच के कनेक्शन प्रकार का चयन करना सुनिश्चित करें। पोर्ट संख्या 22 होनी चाहिए। इसे लॉन्च करने से पहले पेजेंट में ssh कुंजी लोड करना सुनिश्चित करें।
मि। इनविजिबल जूल

110
  1. पुट्टी खोलें
  2. होस्ट नाम में टाइप करें (जैसे bitbucket.org)
  3. Open पर क्लिक करें
  4. होस्ट कुंजी को कैश करने के लिए पॉपअप में हां पर क्लिक करें
  5. पोटीन को बंद करें

मुझे भी यही समस्या थी। Git से आउटपुट को देखते हुए, ऐसा लगता है जैसे git होस्ट कुंजी (शायद बग) को कैश करने में विफल हो रहा है। तो आपको इसे पुटी GUI का उपयोग करके करना होगा।
कपटी जूल 21'16

मैंने सभी चरणों की कोशिश की, लेकिन जब मैं या तो 'y' या 'n' का चयन करता हूं, तो कुछ भी खुशी नहीं देता है Git Bash कुछ भी नहीं करता है
परीक्षण

क्या आपने चरण 2 में सही होस्ट नाम टाइप किया है? क्या आपने गिट बैश को फिर से शुरू करने की कोशिश की?
23

1
यह स्वीकृत उत्तर से अलग कैसे है?
zb226

1
मैंने इस जवाब को वोट दिया क्योंकि यह कदम प्रदान करता है। मुझे यह पसंद नहीं है कि यह एक वर्कअराउंड कैसे है (आपको इसे हर एसएसएच सर्वर से कनेक्ट करना होगा) स्वीकृत उत्तर की तरह।
शुहोशा

26

इसे पॉवरशेल से करने के लिए एक पॉवरशेल विंडो खोलें और निम्नलिखित में पेस्ट करें:

echo y | & 'C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe' -ssh git@github.com
echo y | & 'C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe' -ssh git@gist.github.com
echo y | & 'C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe' -ssh git@bitbucket.org

या PuTTY स्टैंडअलोन संस्करण के साथ:

echo y | & 'C:\Program Files (x86)\PuTTY\plink.exe' -ssh git@github.com
echo y | & 'C:\Program Files (x86)\PuTTY\plink.exe' -ssh git@gist.github.com
echo y | & 'C:\Program Files (x86)\PuTTY\plink.exe' -ssh git@bitbucket.org

यह भी जानने योग्य है कि पोटीन स्टोर एक रजिस्ट्री कुंजी के तहत होस्ट को जानते हैं :

HKEY_CURRENT_USER\SoftWare\SimonTatham\PuTTY\SshHostKeys

उपरोक्त शॉर्टकट के लिए आप निम्नलिखित को एक .regफ़ाइल में रख सकते हैं और इसे चला सकते हैं:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys]
"rsa2@22:github.com"="0x23,0xab603b8511a67679bdb540db3bd2034b004ae936d06be3d760f08fcbaadb4eb4edc3b3c791c70aae9a74c95869e4774421c2abea92e554305f38b5fd414b3208e574c337e320936518462c7652c98b31e16e7da6523bd200742a6444d83fcd5e1732d03673c7b7811555487b55f0c4494f3829ece60f94255a95cb9af537d7fc8c7fe49ef318474ef2920992052265b0a06ea66d4a167fd9f3a48a1a4a307ec1eaaa5149a969a6ac5d56a5ef627e517d81fb644f5b745c4f478ecd082a9492f744aad326f76c8c4dc9100bc6ab79461d2657cb6f06dec92e6b64a6562ff0e32084ea06ce0ea9d35a583bfb00bad38c9d19703c549892e5aa78dc95e250514069"
"rsa2@22:gist.github.com"="0x23,0xab603b8511a67679bdb540db3bd2034b004ae936d06be3d760f08fcbaadb4eb4edc3b3c791c70aae9a74c95869e4774421c2abea92e554305f38b5fd414b3208e574c337e320936518462c7652c98b31e16e7da6523bd200742a6444d83fcd5e1732d03673c7b7811555487b55f0c4494f3829ece60f94255a95cb9af537d7fc8c7fe49ef318474ef2920992052265b0a06ea66d4a167fd9f3a48a1a4a307ec1eaaa5149a969a6ac5d56a5ef627e517d81fb644f5b745c4f478ecd082a9492f744aad326f76c8c4dc9100bc6ab79461d2657cb6f06dec92e6b64a6562ff0e32084ea06ce0ea9d35a583bfb00bad38c9d19703c549892e5aa78dc95e250514069"
"rsa2@22:bitbucket.org"="0x23,0xb9b88df3578371a7eb80c78bcda14fb30da436f11ca932a5fd5a8b6adfcc681df7a59cb4cb7ac966d9eac11daa38ebdbc0a6582a210ed4ee95a8d101c4abc925e942ab47535d64f9a5b3b68035c2ea1e900d709a1e8ea938718f532f9805a190446b92bac3040126225ae9d8374bc2008f106979d631734c7453f78c70091f4783b288869cb3c1941a784cd9baad823be27333833dc1f488a45b85952be75cf0a64965662302e3915378dcd5cfcd3ec903d804a29dff2fdf19df5deba4534b09e4dea6e44f152e339b3c43be98ddadfc56533192e216a3d673f00b4aa9cc9e7870acd8b6adb7e0feb77f2292fc2dede94819def3eb1e785541a06ab31ccf725f"

पोटीन- hosts.reg जिस्ट


2
पहले भी देखें और पलक के इस पहलू के बारे में प्रश्न और उत्तर दें: serverfault.com/questions/420526/…
जोसिप रोडिन

2
FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)
अज़ीमुत

इस मामले में कि आपका रिमोट 22 के अलावा किसी पोर्ट पर काम करता है, आपको इसे एक -P <port>तर्क देकर पोर्ट के साथ पलक चलाने की जरूरत है ।
पितज

20

मैं इसे सीधे प्लिंक चलाकर काम करवाने में कामयाब रहा, पेजेंट के बाद सीधे प्लेक कमांड का उपयोग किया जा रहा है - plink.exe -agent -v git@github.comफिर इसके बाद यह गिट बिना लटकाए काम करता है।


3
अच्छा समाधान! यह एक उत्तर के रूप में चिह्नित किया जाना चाहिए
जेनिथ्स

यह सबसे अच्छा जवाब है।
ब्रायन लेसी

5

इस समस्या को हल करने के लिए मैंने -batchविकल्प के साथ पलक का उपयोग करने के लिए GitBash को कॉन्फ़िगर किया । विकल्प सभी संकेतों को अक्षम कर देता है - पलक बिना लटकाए समाप्त हो जाएगी और कैश में किसी भी प्रमुख फिंगरप्रिंट को नहीं जोड़ेगी।

-batchGitBash द्वारा निष्पादित कमांड को जोड़ने के लिए पैरामीटर जोड़ने के लिए आप एक git config विकल्प सेट कर सकते हैं:

git config --global core.sshCommand "plink -batch"

या GIT_SSH_COMMANDपर्यावरण चर सेट करें।

जब आप अज्ञात होस्ट से रेपो क्लोनिंग करते हैं तो यह आउटपुट इसके समान होगा:

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
Connection abandoned.
fatal: Could not read from remote repository.

इस संदेश के बाद आप कमांड के साथ कैश करने के लिए एक कुंजी जोड़ सकते हैं:

echo y | plink git@bitbucket.org

टिप्पणी : कृपया जांच लें कि क्या पलक आप में है PATH। वैकल्पिक रूप से GitBash config विकल्प में UNIX- जैसे पथ का उपयोग करें, जैसे:

/c/Program\ Files/PuTTY/plink.exe -batch

1
HI मुझे यह संदेश मिला: FATAL ERROR: डिस्कनेक्टेड: कोई समर्थित प्रमाणीकरण विधियाँ उपलब्ध नहीं हैं (सर्वर भेजा गया: publickey)
pungggi

4

अन्य उत्तरों में वर्णित वर्कअराउंड प्रदर्शन करने के बाद भी, आप एक त्रुटि का सामना कर सकते हैं:

घातक त्रुटि: अस्वीकृत: कोई समर्थित प्रमाणीकरण विधियाँ उपलब्ध नहीं हैं (सर्वर भेजा गया: publickey)

एक ही बार में दोनों समस्याओं को हल करने के लिए, अपनी ~/.profileफ़ाइल ( C:\Users\<Username>\.profile) में निम्न जोड़कर, पुटी के बजाय SSH का उपयोग करने के लिए git bash बदलें । यदि आपके पास यह फ़ाइल नहीं है, तो इस लाइन के साथ एक नई फ़ाइल बनाएँ।

GIT_SSH="/usr/bin/ssh.exe"

फिर एक नई गिट बैश विंडो खोलें और अपने git cloneया git pullफिर से प्रयास करें।

ध्यान दें कि इसके लिए आपको SSH कुंजी बनाने की आवश्यकता हो सकती है यदि आपके पास पहले से एक नहीं है। ऐसा करने के लिए, Bitbucket साइट पर दिए गए निर्देशों का पालन करें ।

संबंधित जानकारी के लिए यह SO प्रश्न देखें ।


1

अपने git bash शेल में, GIT_SSH के अस्तित्व की जाँच करें:
echo $GIT<tab><tab>
यदि यह मौजूद है और पोटीन पर सेट है, तो निष्पादित करें:
unset GIT_SSH
आप शायद इसे git bash स्टार्टअप स्क्रिप्ट में से एक में रखना चाहेंगे।
यह एक सार्वभौमिक समाधान नहीं है। इसने हमारे विशेष मामले में काम किया।


क्या / जहां एक 'git bash स्टार्टअप स्क्रिप्ट' है? मैं केवल वास्तविक linux से परिचित हूं।
जेफ के

कई स्टार्ट अप स्क्रिप्ट हैं। कुछ / etc निर्देशिका में स्थित हैं; अन्य आपके घर निर्देशिका में हो सकते हैं। कौन सी स्टार्ट अप स्क्रिप्ट निष्पादित होती हैं यह आपके शेल (इंटरैक्टिव बनाम लॉगिन) पर कमांड लाइन विकल्पों पर निर्भर करता है। ये OS की परवाह किए बिना प्रासंगिक हैं जो शेल के शीर्ष पर चलता है।
रिचर्ड जेसोप

विंडोज में कोई '/ etc' डायरेक्टरी नहीं है।
जेफ के

बैश गोले जो विंडोज के तहत चलते हैं। वे आमतौर पर शेल के बेस (या इंस्टॉल) डायरेक्टरी से कहीं पर मैप किए जाते हैं। जरा गौर से देखिए गीत और साइगविन बैश। याद रखें, ये ऐसे गोले हैं जो एक लीनक्स सिस्टम पर एक खोल की तरह दिखते और संचालित होते हैं।
रिचर्ड जेसोप

0

यह थोड़ा मूर्खतापूर्ण लगता है, लेकिन उपरोक्त सभी की कोशिश करने के बाद, मैंने डिफ़ॉल्ट विकल्पों के साथ गिट बैश को फिर से स्थापित करने का फैसला किया और यह काम कर गया।

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