git - गिट जीयूआई या एसएसएच-कीजेन का उपयोग कर एसएसएच प्राइवेट की अनुमतियां बहुत खुली हैं




ssh cygwin (16)

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

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

CYGWIN

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

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

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

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

मेरे पास साइगविन + गिट के साथ-साथ msysgit है।

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

  • OpenSSH
  • विंडोज कमांड प्रॉम्प्ट से गिट का प्रयोग करें

यह मुझे गिट का उपयोग करने की कोशिश करने के लिए 4 वातावरण देता है:

  • विंडोज सेमीड प्रॉम्प्ट
  • शक्ति कोशिका
  • गिट बैश
  • Cygwin

किसी भी तरह से मैं खुद को ऐसी स्थिति में लाने में कामयाब रहा हूं जहां मैसिसिट, cmd.exe, या पावरहेल का उपयोग करके एक संग्रह को क्लोन करने का प्रयास करता है, मुझे निम्न त्रुटि मिलती है:

> 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 फ़ोल्डर कहीं और स्थित है, लेकिन मुझे यकीन नहीं है कि क्यों

गिट बैश में, मैं अनुमतियों की जांच करता हूं:

$ 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

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

अद्यतन करें:

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

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


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

cd ~/.ssh
chmod 700 id_rsa.pub

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


क्या आपने दूसरी फाइल से कुंजी फाइल कॉपी की है?

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

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

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


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

-आर - आर ----- 1 एलेक्स कोई नहीं 1766 मार्च 8 13:04 /home/alex/.ssh/id_rsa

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

chown alex: व्यवस्थापक ~ / .ssh / id_rsa

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


टर्मिनल पर टाइप करें:

chmod -Rf 700 ~/.ssh/

और फिर प्रयत्न करें।


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

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

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

ठीक क्लिक करें और पूरा होने तक बचाएं।

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


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

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

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

( दूसरे प्रश्न का एक और जवाब अधिक संदर्भ देता है)


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

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

(यदि आप पावरहेल का उपयोग कर रहे हैं तो ".exe" पर ध्यान दें)

आप कुछ ऐसा देख सकते हैं:

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. "सी: \ प्रोग्राम फ़ाइलें \ OpenSSH \ bin" और "ऊपर ले जाएं" का चयन करें ताकि यह शीर्ष पर दिखाई दे।
  5. ओके पर क्लिक करें
  6. अपने कंसोल को पुनरारंभ करें ताकि नए पर्यावरण चर लागू हो सकें।

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

[email protected] /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

[email protected] /k/git
$ git clone [email protected]: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.

[email protected] /k/git
$ ssh [email protected]
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 मेरी चाबियों के लिए फ़ाइल अनुमतियों को संशोधित नहीं करता है।

वातावरण:

  • एनटीएफएस पर विंडोज सर्वर 2008 एसपी 2
  • उपयोगकर्ता: प्रशासक
  • पर्यावरण युद्ध:
    • PLINK_PROTOCOL = ssh
    • गृह = / सी / प्रोफाइल / घर

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


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

chmod 400 ~/.ssh/id_rsa

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


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

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

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

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

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

मुझे उपयोगकर्ता को heroku.com के लिए अपना ईमेल पता के रूप में उपयोग करना पड़ा नोट: इसका मतलब है कि आपको एक कुंजी बनाने की आवश्यकता है, मैंने कुंजी बनाने के लिए इसका पालन किया और जब यह कुंजी के नाम के लिए संकेत देता है, तो id_heroku here

  1. फिर कुंजी जोड़ें:
    heroku कुंजी: ~ / .ssh / id_heroku.pub जोड़ें

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


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

विंडोज़ पर, यह मेरे लिए काम किया:

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

  2. Sswin ssh.exe के साथ msysgit ssh.exe को बदलें।

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

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

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



हाल ही में समस्या का सामना करने के बाद और यह शीर्ष Google परिणामों में से एक है, मैंने सोचा कि मैं यहां चर्चा में दस्तावेज के आसपास एक साधारण काम के साथ http://code.google.com/p/msysgit/issues/detail?id=261#c40 : http://code.google.com/p/msysgit/issues/detail?id=261#c40

बस mysys ssh.exe को अपने cygwin ssh.exe के साथ ओवरराइट करना शामिल है


here मिले गिट का उपयोग कर विंडोज 7 के लिए (यह मिनीगब्लू का उपयोग करता है, सिगविन नहीं):

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




openssh