SSH निजी कुंजी अनुमतियाँ Git GUI या ssh-keygen का उपयोग करके बहुत खुली हैं


244

हाल ही में मैं जीथब को क्लोन या पुश करने में असमर्थ हूं, और मैं मूल कारण खोजने की कोशिश कर रहा हूं।

यह खिड़कियों पर है

मेरे पास cygwin + git के साथ-साथ msysgit भी है।

Msysgit निम्नलिखित विकल्पों के साथ स्थापित किया गया था:

  • OpenSSH
  • Windows कमांड प्रॉम्प्ट से Git का उपयोग करें

यह मुझे 4 वातावरण देता है जिसमें git का उपयोग करने का प्रयास करें:

  • Windows cmd प्रॉम्प्ट
  • शक्ति कोशिका
  • गिट बश
  • Cygwin

किसी तरह मैं अपने आप को एक ऐसी स्थिति में ले जाने में कामयाब रहा, जहाँ जब मैं msysgit, cmd.exe, या Powershell का उपयोग करके एक रिपॉजिटरी को क्लोन करने की कोशिश करता हूं, तो मुझे निम्न त्रुटि मिलती है:

> Initialized empty Git repository in
> C:/sandbox/SomeProject/.git/
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> @    WARNING: UNPROTECTED PRIVATE KEY FILE!          @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> Permissions 0644 for
> '/c/Users/Ben/.ssh/id_rsa' are too
> open. It is recommended that your
> private key files are NOT accessible
> by others. This private key will be
> ignored. bad permissions: ignore key:
> /c/Users/Ben/.ssh/id_rsa Permission
> denied (publickey). fatal: The remote
> end hung up unexpectedly

यह मेरे c: \ users \ ben \ फ़ोल्डर में .ssh फ़ोल्डर का उपयोग कर रहा है, जो कि msysgit द्वारा उपयोग किया जाता है। मुझे लगता है कि साइबर फ़ोल्डर काम करता है क्योंकि .ssh फ़ोल्डर कहीं और स्थित है, लेकिन मुझे यकीन नहीं है कि क्यों

Git Bash में, मैं अनुमतियों की जाँच करता हूँ:

$ ls -l -a ~/.ssh

जो मुझे देता है:

drwxr-xr-x    2 Ben      Administ        0 Oct 12 13:09 .    
drwxr-xr-x   34 Ben      Administ     8192 Oct 12 13:15 ..    
-rw-r--r--    1 Ben      Administ     1743 Oct 12 12:36 id_rsa
-rw-r--r--    1 Ben      Administ      399 Oct 12 12:36 id_rsa.pub    
-rw-r--r--    1 Ben      Administ      407 Oct 12 13:09 known_hosts

इन अनुमतियों को स्पष्ट रूप से बहुत आराम दिया जाता है। उन्हें इस तरह से कैसे मिला, मुझे पता नहीं है।

मैं उन्हें बदलने की कोशिश कर सकता हूं ...

$ chmod -v -R 600 ~/.ssh

जो मुझे बताता है:

mode of `.ssh' changed to 0600 (rw-------)
mode of `.ssh/id_rsa' changed to 0600 (rw-------)
mode of `.ssh/id_rsa.pub' changed to 0600 (rw-------)
mode of `.ssh/known_hosts' changed to 0600 (rw-------)

लेकिन इसका कोई असर नहीं दिख रहा है। मुझे अभी भी वही त्रुटि मिलती है, और कर रहा हूं

$ ls -l -a ~/.ssh

पहले की तरह ही अनुमति देता है।

अपडेट करें:

मैंने cygwin में उन फ़ाइलों की अनुमतियों को ठीक करने की कोशिश की, और cygwin ने उनकी अनुमतियों को सही ढंग से रिपोर्ट किया, gitbash नहीं करता: alt text http://cdn.cloudfiles.mosso.com/c54102/app796203125544898924.jpg

कैसे मैं वास्तव में इन अनुमतियों को ठीक कर सकता हूँ पर कोई विचार?


1
आप हमें बताना चाह सकते हैं कि मूल फ़ाइल सिस्टम क्या है जो C: \ Users \ Ben \ उपयोग कर रहा है। ऐसा लगता है कि फाइलसिस्टम वास्तविक अनुमतियों का समर्थन नहीं करता है, या शेल और फाइल सिस्टम ठीक से काम नहीं कर रहा है। क्या आप विंडोज एसीएल के माध्यम से अनुमतियां बदल सकते हैं?
चेन लेवी

मैं विंडोज 7 का उपयोग कर रहा हूं। मैं इसके लिए अनुमतियों को बदल सकता हूं, लेकिन वे क्या होना चाहिए? सभी github / ssh डॉक्स का कहना है कि आपको 0600 की आवश्यकता है, लेकिन मुझे नहीं पता कि विंडोज एसीएल में इसका क्या मतलब है।
बेन शीशीरमन

2
उह ... यहाँ एक सायंडोट है, लेकिन 600 की निर्देशिका में चामोद एक बुरा विचार है। निर्देशिकाएँ (और निष्पादन योग्य फाइलें) हमेशा एक अंक अधिक होती हैं (700 नहीं 600, 755 नहीं 644)। एक निर्देशिका पर ऐसा करने से यह गैर-कानूनी हो जाएगा। अधिक विस्तृत स्पष्टीकरण के लिए dartmouth.edu/~rc/help/faq/permissions.html देखें ।
मार्क एम्बलिंग

क्या आप PuTTY का उपयोग करने के विरोध में हैं?
ग्रेग बेकन

अगर यह मेरी समस्या को ठीक करता है तो नहीं, लेकिन मैं यह जानने के लिए उत्सुक हूं कि यह सेटअप मेरे लिए काम क्यों नहीं करता है।
बेन शहीरमैन

जवाबों:


361

आपने पूरी निर्देशिका पर अनुमतियों को बदल दिया, जिसे मैं स्पलैश से सहमत हूं एक बुरा विचार है। यदि आप याद कर सकते हैं कि निर्देशिका के लिए मूल अनुमतियाँ क्या हैं, तो मैं उन्हें उस पर वापस सेट करने की कोशिश करूँगा और फिर निम्नलिखित करूँगा

cd ~/.ssh
chmod 700 id_rsa

.ssh फ़ोल्डर के अंदर। वह केवल स्वामी (आप) के लिए rwx (रीड, राइट, एक्ज़ीक्यूट) के लिए id_rsa फ़ाइल सेट करेगा और बाकी सभी के लिए शून्य एक्सेस करेगा।

यदि आपको याद नहीं है कि मूल सेटिंग्स क्या हैं, तो एक नया उपयोगकर्ता जोड़ें और उस उपयोगकर्ता के लिए SSH कुंजी का एक सेट बनाएं, इस प्रकार एक नया .ssh फ़ोल्डर बना सकते हैं जिसमें डिफ़ॉल्ट अनुमतियाँ होंगी। आप अपने .ssh फ़ोल्डर और फ़ाइलों को रीसेट करने के लिए अनुमतियों के संदर्भ के रूप में उस नए .ssh फ़ोल्डर का उपयोग कर सकते हैं।

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

संपादित: इसके अलावा केवल Google के माध्यम से यह लिंक मिला है - "चेतावनी: अपरिचित निजी कुंजी फ़ाइल!" लिनक्स पर जबकि यह लिनक्स पर लक्षित है, यह तब से मदद कर सकता है जब हम लाइनेक्स अनुमतियों और इस तरह की बात कर रहे हैं।


2
यह उत्तर विशेष रूप से cygwin या msysgit का उपयोग करने पर लागू होता है (क्योंकि msysgit, cygwin या संभवतः ming3232 के सबसेट का उपयोग करता है)। समस्या फ़ाइल पर अनुमति है। Git को (ज्यादातर) linux परमिशन के साथ काम करना पसंद है (शायद यह टारगेट ऑडियंस का प्रोडक्ट है)। Winodws शेल में git.exe का उपयोग करने से समस्या होती है, मैं msysgit के साथ चिपके रहने की सलाह दूंगा। कम से कम जब तक GitSharp पूरी तरह से काम नहीं कर रहा है।
कोबी

2
यह विंडोज 8 पर काम नहीं कर रहा है और मेरी जन '14 साइबरगन की स्थापना के रूप में 700 के बाद chmod, यह फ़ाइल को दिखा रहा है rwxrwx ---। समूह अनुमतियाँ जो भी मैं उपयोगकर्ता अनुमतियाँ सेट करने के लिए सेट किया जाना है और मैं अपनी कुंजी का उपयोग नहीं कर सकता।
डीन हिलर

1
@ डीनहिलर, 700 की अनुमति की तरह दिखना चाहिए -rwx------। तो आप जो दिखा रहे हैं वह सही नहीं है अगर आपने सही तरीके से chmod कमांड किया है।
कोबी

5
@ नोबी नोप, यह काम के साथ एक बग था जो जगाया गया ... chgrp -R यूजर्स का उपयोग करने की आवश्यकता है ~ /। Ssh और फिर chmod अब काम कर रहा है और वास्तव में अनुमतियों को सही ढंग से बदलता है ..... एक ज्ञात बग मैं अंत में मिला। एक और पोस्ट।
डीन हिलर

2
मैं यह सत्यापित कर सकता हूं कि विंडोज के लिए GitBash में किसी प्रकार का बग है जहां या तो सही अनुमति नहीं दी जा सकती है, जिसे chmod के साथ सेट किया जा सकता है, या अनुमतियाँ सही ढंग से नहीं पढ़ी जाती हैं। chmod 600 id_rsd; ls -l id_rs -> -rwx-r
r--

74

सागवान के चामोद के साथ एक बग है, कृपया देखें:

/superuser/397288/using-cygwin-in-windows-8-chmod-600-does-not-work-as-expected

chgrp -Rv Users ~/.ssh/* 
chmod -vR 600 ~/.ssh/id_rsa

जो भी कारण के लिए, विंडोज अनुमतियों से साइबरविन / * निक्स जैसी अनुमतियों की मैपिंग थोड़ी फजी है। भले ही मैंने विंडोज की ओर से अन्य सभी उपयोगकर्ताओं की अनुमतियां हटा दीं, लेकिन साइबरगन ने मेरे लिए, उपयोगकर्ता के लिए , किसी अन्य समूह नाम की अनुमतियों को लागू कर दिया None। (मुझे लगता है कि यह मानक प्रक्रिया है जब किसी समूह को स्पष्ट रूप से परिभाषित नहीं किया गया है)। यह स्पष्ट समूह में परिवर्तन करने के Usersलिए अनुमतियों को अलग करने के लिए साग्विन की अनुमति देता है, और मैं अंततः एक स्वचालित 660 के बजाय 600 सेट कर सकता हूं।
टी-मार्ट

3
यह वास्तविक सही उत्तर है। जिसे सही उत्तर के रूप में वोट दिया गया - मुझे लगता है कि जिन लोगों ने वोट दिया था, वे लिनक्स उपयोगकर्ता थे और उन्हें एहसास नहीं था कि वह सही तरीके से कमांड को अंजाम दे रहे हैं। मुझे आज वही समस्या थी, जो मुझे साइबरविन से थी। धन्यवाद!
माइकेल

इस समाधान को लागू करने से पहले, जब मैंने chmod 600git का उपयोग किया, तो शिकायत होगी कि मेरी अनुमति अभी भी थी 0660। समूह के स्वामित्व को ठीक करना चाउन को सही ढंग से लागू करना।
गिलहर्मे रॉड्रिक्स

1
मैंने साइगविन को अपडेट किया और इसने काम किया। उन्होंने बग को ठीक कर लिया होगा।
डंकन कलवर्ट

17

* Nix सिस्टम के लिए, स्पष्ट chmod 600 id_rsaफ़िक्स् टॉस है, लेकिन विंडो 7 पर मुझे थोड़ी देर के लिए दीवार के सामने अपना सिर मारना था, लेकिन फिर मुझे जादू का हल मिला:

माय कंप्यूटर / राइट क्लिक / प्रॉपर्टीज / एडवांस्ड सिस्टम सेटिंग्स / एनवायरनमेंट वेरिएबल्स पर जाएं और वेरिएबल को डिलीट करें (संभवतः सिस्टम और यूजर दोनों से):

CYGWIN

मूल रूप से, git विंडोज़ बाइनरी द्वारा उपयोग किए जाने वाले mingw32 में इसका दोष, सभी फाइलों को 644 और सभी फ़ोल्डरों को 755 हमेशा देखते हुए। पर्यावरण चर को हटाने से उस व्यवहार में बदलाव नहीं होता है, लेकिन यह समस्या को अनदेखा करने के लिए ssh.exe को स्पष्ट रूप से बताता है। यदि आप खोजकर्ता सुरक्षा सेटिंग्स के माध्यम से अपने id_rsa के लिए उचित अनुमतियाँ सेट करते हैं (वास्तव में आपके स्वयं के अलावा किसी अन्य उपयोगकर्ता के लिए कोई आवश्यकता नहीं है, तो "सभी" नहीं, "व्यवस्थापक" नहीं, "सिस्टम" नहीं। कोई नहीं। बस आप) , आप अभी भी सुरक्षित रहेंगे।

अब, क्यों mww32, साइबरविन की तुलना में एक अलग प्रणाली, CYGWIN पर्यावरण चर का कोई भी उपयोग करेगा , मेरे से परे है। मेरे लिए एक बग की तरह लग रहा है।


3
इसने मेरे लिए काम नहीं किया। मुझे अभी भी "UNPROTECTED PRIVATE KEY FILE" संदेश मिलता है। यदि आप किसी और को इस परिणाम के साथ इस मामले में आना चाहते हैं तो बस आपको बता देना चाहते हैं।
ल्यूक

मेरे लिए काम किया। यह हालांकि असिन है। मैं अब सिग्विन का उपयोग भी नहीं कर रहा हूं। इसके अलावा, पृथ्वी पर आपने इसका कैसे पता लगाया?
सरगम

13

मैं XP पर हूँ और इसने Git Bash को w / Github (बहुत हताशा के बाद) संवाद करने की अनुमति दी:

  1. कॉपी c:\cygwin\bin\cyg*(~ 50 फाइलें)c:\Program Files\Git\bin\
  2. (अधिलेखित) c:\cygwin\bin\ssh.exeको कॉपी करेंc:\Program Files\Git\bin\
  3. फ़ाइल बनाएँ c:\Documents and Settings\<username>\.ssh\config:

    Host github.com
        User git
        Hostname github.com
        PreferredAuthentications publickey
        IdentityFile "/cygdrive/c/Documents and Settings/<username>/.ssh/id_rsa"
    
  4. (वैकल्पिक) ssh -v git@githubडीबग किए गए कनेक्शन को देखने के लिए उपयोग करें ।

  5. एक धक्का की कोशिश करो!

पृष्ठभूमि: सामान्य समस्या इन दोनों का एक संयोजन है:

  • बग: mingw32 सभी फाइलों को 644 (अन्य / समूह-पठनीय) के रूप में देखता है, और कुछ भी नहीं जिसे मैंने mingw32, cygwin, या Windows में आज़माया था।
  • mingw32 का SSH संस्करण निजी कुंजी (सर्वर में आम तौर पर एक अच्छी नीति) के लिए अनुमति नहीं देगा।

यह एक फ़ाइल बनाने के लिए कोई जरूरत तेजी c:\Documents and Settings\<username>\.ssh\configके बाद से आप जगह ले ली है c:\Program Files\Git\bin\ssh.exe साथ c:\cygwin\bin\ssh.exe। सही ?

W / "ज्यादा हताशा" टिप्पणी से सहमत हों। गिटोलिट के लिए, मैंने इन चरणों का पालन किया, अपने Git dir (PortableGit - या - Program Files / Git) पर cygwin / bin / cyg * की नकल करते हुए, और पाया कि मैं तब Git-Bash से git का उपयोग कर सकता हूं, लेकिन cygwin bash से नहीं। मेरे PATH में दोनों पोर्टेबलगिट और साइग्विन बिन निर्देशिकाओं को जोड़कर भी सीमित सफलता के साथ काम किया ... लेकिन फिर भी मुझे पोर्टेबलगेट / बिन / ssh.exe {,। Bak} को स्थानांतरित करना पड़ा, ताकि यह गलती से उपयोग नहीं किया गया (भले ही यह हो। c: /cygwin/bin/ssh.exe) के समान। मूल रूप से ssh.exe को अन्य निर्भरता के कारण साइबरगन निर्देशिका से चलाना पड़ता है, जिसकी नकल नहीं की गई थी।
माइकल

हालाँकि यह अभी मेरे लिए काम कर रहा है, लेकिन कोशिश करने के लिए बस GAT और Cygwin दोनों को PATH में जोड़ना होगा, और Git के ssh.exe को रास्ते से बाहर निकालना होगा ताकि cygwin के ssh.exe का उपयोग किया जाए (cygwin की बिन निर्देशिका से)।
माइकल

LogLevel DEBUGGsh.exe द्वारा शुरू की गई ssh.exe प्रक्रिया से डिबग आउटपुट प्राप्त करने के लिए .ssh \ config फ़ाइल में जोड़ें ।
नॉब

धन्यवाद - इस समाधान ने मेरे लिए काम किया! विशेष रूप से, c: \ cygwin \ bin \ I से ssh.exe, cygcrypto-0.9.8.dll, cygwin1.dll, cygminires.dll और cygz.dll को C: \ Programme \ Git \ bin \ में कॉपी किया।
नेक्सस-बाइट्स

10

यहां पाए गए Git का उपयोग करते हुए विंडोज 7 के लिए (यह MinGW का उपयोग करता है, न कि Cygwin का):

  1. विंडोज़ एक्सप्लोरर में, अपनी id_rsa फ़ाइल पर राइट-क्लिक करें और गुण चुनें
  2. सुरक्षा टैब चुनें और संपादित करें पर क्लिक करें ...
  3. सभी समूहों के लिए पूर्ण नियंत्रण के बगल में इनकार बॉक्स को चेक करें
  4. अपने Git कमांड को पुन: प्रयास करें

1
यह मेरे लिए था, लेकिन अब मेरे पास एक नया मुद्दा है जो मेरे पासवर्ड को पसंद नहीं करता है, कोई भी पासवर्ड जो मैं अपनी कुंजी फ़ाइल देता हूं।
जेसन साउथवेल

7

यहाँ ठीक है कि कैसे मैं वास्तव में Win7 पर अनुमतियों के बारे में अपनी विंडोज फाइलों पर बदलाव के लिए मजबूर हूं: विंडोज़ एक्सप्लोरर में अपनी ssh कुंजी खोजें: C: \ Users [your_user_name_here] .shsh_ id_rsa।

फ़ाइल> गुण> सुरक्षा टैब> उन्नत बटन> अनुमतियाँ बदलें पर राइट-क्लिक करें

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

ओके पर क्लिक करें और तब तक सेव करें।

मैंने इसके लिए कई दिनों तक संघर्ष किया क्योंकि मेरी विंडो कमांड लाइन से फ़ाइल अनुमतियों को नहीं बदलेगी। इस तरह से यह भी किया जाता है कि आस-पास के रोमांचक कार्यों का उपयोग करने के बजाय, इसके अजीब परिणाम हो सकते हैं।


6

गुणों से फ़ाइल अनुमतियाँ बदलना, वंशानुक्रम को अक्षम करना और chmod 400 को चलाना मेरे लिए काम नहीं आया। मेरी निजी कुंजी फ़ाइल की अनुमतियाँ थीं:

-r - r ----- 1 एलेक्स कोई नहीं 1766 Mar 8 13:04 / home/alex/.ssh/id_rsa

फिर मैंने देखा कि समूह कोई भी नहीं था, इसलिए मैं बस भाग गया

chown एलेक्स: प्रशासक ~ / .ssh / id_rsa

तब मैं सफलतापूर्वक chmod 400 के साथ अनुमतियों को बदल सकता था, और एक git पुश चला सकता था।


4

मैक उपयोगकर्ताओं के लिए:

टर्मिनल में टाइप करके अपनी मुख्य जोड़ी फ़ाइल की सेटिंग बदलें:

chmod og-r *filename.pem*

(सुनिश्चित करें कि आप सही निर्देशिका में हैं, या कमांड में सही तरीके से फ़ाइल नाम है)।


3

मैं इसे हल कर रहा हूं:

chmod 400 ~/.ssh/id_rsa

मुझे मदद की उम्मीद है। सौभाग्य।


1
400 की अनुमति को क्रिस्टियन के रूप में बदलने पर, यह अधिक सुरक्षित होगा।
सिलवेस्टरअबरु

2

समस्या के आर-पार होने के बाद हाल ही में और यह उन शीर्ष Google परिणामों में से एक है जिनके बारे में मुझे लगा कि मैं यहाँ चर्चा में प्रलेखित एक साधारण काम के साथ चिपके रहूंगा : http://code.google.com/p/msysgit/issues/detail?id = 261 # C40

बस अपने cygwin ssh.exe के साथ mysys ssh.exe को अधिलेखित करना शामिल है


2

मुझे हाल ही में विंडोज एक्सपी पर भी यही समस्या थी। मैंने अपने ~ / .shsh / id_rsa फ़ाइल पर 700 को चोदने की कोशिश की लेकिन यह काम नहीं आया। जब मैंने ~ / .ssh / id_rsa पर ls -l का उपयोग करते हुए अनुमतियों पर एक नज़र डाली तो मैं देख सकता था कि मेरी प्रभावी अनुमतियाँ अभी भी 644 थी।

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

यह समान समस्या वाले अन्य लोगों के लिए सहायक हो सकता है।


1

मैं अभी Git 1.6.5 के साथ खेल रहा हूं, और मैं आपका सेटअप दोहरा नहीं सकता:

Administrator@WS2008 /k/git
$ ll ~/.ssh
total 8
drwxr-xr-x    2 Administ Administ     4096 Oct 13 22:04 ./
drwxr-xr-x    6 Administ Administ     4096 Oct  6 21:36 ../
-rw-r--r--    1 Administ Administ        0 Oct 13 22:04 c.txt
-rw-r--r--    1 Administ Administ      403 Sep 30 22:36 config_disabled
-rw-r--r--    1 Administ Administ      887 Aug 30 16:33 id_rsa
-rw-r--r--    1 Administ Administ      226 Aug 30 16:34 id_rsa.pub
-rw-r--r--    1 Administ Administ      843 Aug 30 16:32 id_rsa_putty.ppk
-rw-r--r--    1 Administ Administ      294 Aug 30 16:33 id_rsa_putty.pub
-rw-r--r--    1 Administ Administ     1626 Sep 30 22:49 known_hosts

Administrator@WS2008 /k/git
$ git clone git@github.com:alexandrul/gitbook.git
Initialized empty Git repository in k:/git/gitbook/.git/
remote: Counting objects: 1152, done.
remote: Compressing objects: 100% (625/625), done.
remote: Total 1152 (delta 438), reused 1056 (delta 383)s
Receiving objects: 100% (1152/1152), 1.31 MiB | 78 KiB/s, done.
Resolving deltas: 100% (438/438), done.

Administrator@WS2008 /k/git
$ ssh git@github.com
ERROR: Hi alexandrul! You've successfully authenticated, but GitHub does not pro
vide shell access
Connection to github.com closed.

$ ssh -v
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007

chmod मेरी कुंजी के लिए फ़ाइल अनुमतियों को संशोधित नहीं करता है।

वातावरण:

  • NTFS पर विंडोज सर्वर 2008 SP2
  • उपयोगकर्ता: व्यवस्थापक
  • पर्यावरण संस्करण:
    • PLINK_PROTOCOL = ssh
    • गृह = / सी / प्रोफाइल / घर

अद्यतन: Git 1.6.5.1 भी काम करता है।


दिलचस्प। लगता है कि आप पोटीन विकल्प का उपयोग कर रहे हैं?
बेन शेहरमैन

1

यह विंडोज पर एक विशेष रूप से शामिल समस्या है, जहां यह केवल फाइलों को सही ढंग से चोदने के लिए पर्याप्त नहीं है। आपको अपना वातावरण स्थापित करना होगा।

विंडोज पर, इसने मेरे लिए काम किया:

  1. साइबरविन स्थापित करें।

  2. Msysgit ssh.exe को cygwin के ssh.exe से बदलें।

  3. Cygwin bash का उपयोग करते हुए, 600 निजी कुंजी फ़ाइल को chmod करें, जो मेरे लिए "id_rsa" थी।

  4. यदि यह अभी भी काम नहीं करता है, तो नियंत्रण कक्ष पर जाएं -> सिस्टम गुण -> उन्नत -> पर्यावरण चर और निम्नलिखित पर्यावरण चर जोड़ें। फिर चरण 3 को दोहराएं।

    परिवर्तनीय मूल्य
    CYGWIN sbmntsec


1

मैं दो चीजें करके इसे ठीक करने में सक्षम था, हालांकि आपको चरण 1 नहीं करना पड़ सकता है।

  1. cygwin ssh.exe और सभी cyg * से कॉपी करें। Git की बिन डायरेक्टरी में। (यह आवश्यक नहीं हो सकता है लेकिन यह एक ऐसा कदम है जिसे मैंने लिया है लेकिन यह अकेले चीजों को ठीक नहीं करता है)

  2. निम्न चरणों का पालन करें: http://zylstra.wordpress.com/2008/08/29/overcome-herokus-permission-denied-publickey-problem/

    मैंने अपनी ~ / .shsh / config फाइल में कुछ विवरण जोड़े:

Hostoku.com होस्ट करें
होस्टनाम heroku.com
पोर्ट 22 पहचानें
हां केवल
पहचान करें ~ / .ssh / id_heroku
TCPKeepAlive हां
उपयोगकर्ता ब्रैंडन

मुझे heroku.com के लिए अपने ईमेल पते के रूप में उपयोगकर्ता का उपयोग करना पड़ा। नोट: इसका मतलब है कि आपको एक कुंजी बनाने की आवश्यकता है, मैंने कुंजी बनाने के लिए इसका पालन किया और जब यह कुंजी के नाम के लिए संकेत देता है, तो id_heroku http निर्दिष्ट करना सुनिश्चित करें : / /help.github.com/win-set-up-git/

  1. फिर कुंजी जोड़ें:
    हरोकू कुंजियाँ: ~ / .ssh / id_heroku.pub जोड़ें

1

मेरे लिए क्या चाल थी CYGWIN पर्यावरण चर के साथ अद्यतन करने के लिए : " tty nodosfilewarning "। यहां तक ​​कि चाबी को तानने की जरूरत नहीं थी।


0

प्राथमिक प्रश्न का सीधा उत्तर नहीं है, लेकिन आपके सवाल पर कि साइबरविन का फ़ोल्डर कैसे काम करता है ... एक सामान्य नियम के रूप में, cygwin c: \ cygwin \ home \ उपयोगकर्ता नाम के समीकरण के तहत "आपकी" सभी फ़ाइलों को डालता है। यह उस फ़ोल्डर को किसी भी उपयोगकर्ता-विशिष्ट सेटिंग्स के लिए Windows उपयोगकर्ता निर्देशिका के बजाय व्यवहार करता है।


0

जब तक कोई कारण नहीं है कि आप उस निजी / सार्वजनिक कुंजी जोड़ी (id_rsa / id_rsa.pub) को रखना चाहते हैं, या दीवार पर अपना सिर पीटने का आनंद लेते हैं, तो मैं आपको उन्हें फिर से बनाने और github पर अपनी सार्वजनिक कुंजी अपडेट करने की सलाह दूंगा।

अपनी ~ / .shsh निर्देशिका की बैकअप प्रतिलिपि बनाकर प्रारंभ करें।

निम्नलिखित दर्ज करें और "y" का जवाब दें कि क्या आप मौजूदा फ़ाइलों को लिखना चाहते हैं।

ssh-keygen -t rsa

सार्वजनिक कुंजी की सामग्री को अपने क्लिपबोर्ड पर कॉपी करें। (नीचे आपको मैक पर कैसे करना चाहिए)।

cat ~/.ssh/id_rsa.pub | pbcopy

Github पर अपने खाते में जाएं और इस कुंजी को जोड़ें।

Name: My new public key
Key: <PASTE>

अपने टर्मिनल से बाहर निकलें और एक नया पुनरारंभ करें।

यदि आपको अपनी सार्वजनिक कुंजी के लिए "अपना पासवर्ड दर्ज करें" जैसे संवेदनहीन त्रुटि संदेश मिलते हैं, तो आपने कभी भी प्रवेश नहीं किया है, इस तकनीक पर प्रारंभ पर विचार करें। जैसा कि आप ऊपर देखते हैं, यह जटिल नहीं है।


0

मैं पॉवर्सशेल में पूरी तरह से काम करने के लिए कभी भी गेटअप करने में कामयाब नहीं हुआ। लेकिन git bash शेल में मेरे पास कोई अनुमति से संबंधित समस्याएँ नहीं थीं, और मुझे chmod आदि सेट करने की आवश्यकता नहीं थी ... गितब में ssh जोड़ने के बाद मैं ऊपर और चल रहा था।



0

क्या आपने किसी अन्य मशीन से की फाइल को कॉपी किया है?

मैंने अभी id_rsaक्लाइंट मशीन पर एक फ़ाइल बनाई है, फिर मैंने जो कुंजी चाही है, उसे चिपकाया है। कोई अनुमति जारी नहीं करता है। सेट करने के लिए कुछ भी नहीं। यह सिर्फ काम किया। यदि आप प्राइवेट कुंजी बनाने के लिए PuTTYgen का उपयोग करते हैं तो यह भी काम करता है।

यदि आप इसे किसी अन्य मशीन से कॉपी कर रहे हैं, तो संभवतः कुछ छिपे हुए समूह का मुद्दा।

दो विंडोज 8.1 मशीनों पर परीक्षण किया गया। निजी कुंजी को कॉपी और पेस्ट करने के लिए उदात्त पाठ 3 का उपयोग करना। Git Bash (Git-1.9.4-preview20140611) का उपयोग करना।


0

फरवरी 2015 ( 1.7.34(0.285/5/3) 2015-02-04 12:14 x86_64 Cygwin) के आसपास मेरे सिगविन इंस्टॉलेशन को एक संस्करण में अपग्रेड करने के बाद , मैं अचानक UNPROTECTED PRIVATE KEY FILEचेतावनी में भाग गया ।

मैंने निम्न कमांड चलाने के बाद इस समस्या को ठीक किया:

setfacl -s u::rw-,g::---,o:--- ~/.ssh/id_rsa

( एक अन्य प्रश्न का एक और उत्तर अधिक संदर्भ देता है)


0

@ कोबी का जवाब मेरे लिए काम नहीं करता है, इसलिए मैं थोड़ा बदलाव करता हूं।

cd ~/.ssh
chmod 700 id_rsa.pub

यह मैक पर मेरे लिए अच्छा काम करता है।


0

मेरे पास विंडोज 10 पर एक ही मुद्दा था जहां मैंने एसएसएच को एक वैग्रेंट बॉक्स में रखने की कोशिश की। यह पुराने OpenSSH संस्करण में एक बग जैसा लगता है। मेरे लिए क्या काम किया:

  1. Http://www.mls-software.com/opensshd.html से नवीनतम ओपनएसएसएच स्थापित करें
  2. कहाँ

(नोट करें ".exe" यदि आप Powershell का उपयोग कर रहे हैं)

आप कुछ इस तरह देख सकते हैं:

C:\Windows\System32\OpenSSH\ssh.exe
C:\Program Files\OpenSSH\bin\ssh.exe
C:\opscode\chefdk\embedded\git\usr\bin\ssh.exe

ध्यान दें कि उपरोक्त उदाहरण में नवीनतम ओपनएसएसएच पथ में दूसरा है, इसलिए यह निष्पादित नहीं करेगा।

आदेश बदलने के लिए:

  1. विंडोज बटन पर राइट-क्लिक करें -> सेटिंग्स -> "सिस्टम पर्यावरण संस्करण संपादित करें"
  2. "अग्रिम" टैब पर "पर्यावरण चर ..." पर क्लिक करें।
  3. सिस्टम चर के तहत "पथ" संपादित करें।
  4. "C: \ Program Files \ OpenSSH \ bin" और "Move Up" का चयन करें ताकि यह शीर्ष पर दिखाई दे।
  5. ओके पर क्लिक करें
  6. अपने कंसोल को पुनरारंभ करें ताकि नया वातावरण चर लागू हो सके।

0

मेरा सिस्टम बैश / साइबर / git / msysgit / शायद-अधिक के साथ एक गड़बड़ है ...

chmodकुंजी, या configफ़ाइल पर कोई प्रभाव नहीं पड़ा ।

फिर मैंने इसे विंडोज से संपर्क करने का फैसला किया, जिसने काम किया।

  1. उस फ़ाइल को राइट-क्लिक करें जिसकी अनुमति के लिए फ़िक्सिंग की आवश्यकता है।
  2. का चयन करें Properties
  3. Securityटैब का चयन करें ।
  4. Advancedनीचे के पास क्लिक करें ।
  5. क्लिक करें Change, अगले करने के लिए Ownerशीर्ष के निकट।
  6. "My-Awesome-Username" टाइप करें (जाहिर है कि इसे अपने वर्तमान विंडोज यूज़रनेम में बदलें), और Check Namesफिर क्लिक करें OK
  7. के तहत Permission entries:, प्रत्येक उपयोगकर्ता को "My-Awesome-Username" नहीं है, और चुनें Remove। इसे दोहराएं जब तक कि "My-Awesome-Username" केवल एक ही बचा है।
  8. "My-Awesome-Username" चुनें, और Editनीचे क्लिक करें।
  9. सुनिश्चित करें कि Type:शीर्ष पर सेट है Allow, और उसके बाद चेकबॉक्स पर टिक करें Full control
  10. मारो OK, Apply, OK, OK

  11. अब एक और कोशिश दो ...

कभी-कभी लगता है कि मॉक-बैश फ़ाइल के स्वामित्व को नियंत्रित नहीं कर सकता है। यह विशेष रूप से अजीब है, क्योंकि यह एक मॉक-बैश स्क्रिप्ट से उत्पन्न है। जाओ पता लगाओ।


0

मेरे द्वारा सुझाए गए कोई भी कार्यपत्रक (chmod / chgrp / setfacl / windows perms) ने मेरे लिए विंडोज 7 कॉर्पोरेट वीएम पर msys64 के साथ काम नहीं किया। अंत में मैंने स्टड पर दी गई कुंजी के साथ एक ssh एजेंट का उपयोग करके समस्या के आसपास काम किया। .bash_profileइसे मेरे साथ जोड़ने से यह मेरे लॉगिन के लिए डिफ़ॉल्ट हो जाता है:

eval $(ssh-agent -s)
cat ~/.ssh/id_rsa | ssh-add -k -

अब मैं git पुश कर सकता हूं और ssh रिमोट के साथ खींच सकता हूं।

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