विंडोज 8 पर साइबरविन के माध्यम से गिट का उपयोग करना


16

मुझे एक विंडोज़ 8 देव पूर्वावलोकन मिला है (यदि यह प्रासंगिक है तो यकीन नहीं है, लेकिन मुझे w7 पर यह परेशानी कभी नहीं हुई) मशीन और मैं गितुब से एक गिट रेपो क्लोन करने की कोशिश कर रहा हूं।

समस्या यह है कि मेरे ~ / .ssh / id_rsa में 440 अनुमतियाँ हैं और इसे 400 होने की आवश्यकता है। मैंने इसे चकमा देने की कोशिश की है, लेकिन उपयोगकर्ता अनुमतियों में कोई भी परिवर्तन समूह अनुमतियों में परिलक्षित होता है (अर्थात 660 में chmod 600 परिणाम, आदि) )। यह पूरे फाइलसिस्टम में किसी भी फाइल में स्थिर रहता है।

मैंने ACL के साथ खिलवाड़ करने की कोशिश की है, लेकिन कोई फायदा नहीं हुआ (अपने उपयोगकर्ता पर पूर्ण नियंत्रण और सभी को अस्वीकार करने का परिणाम 000 में हुआ)

यहाँ कुछ आउटपुट मदद करने के लिए हैं:

$ git clone [removed]
Cloning into [removed]...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0660 for '/home/john/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/john/.ssh/id_rsa
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

$ ll ~/.ssh
total 6
-r--r----- 1 john None 1675 Nov 30 19:15 id_rsa
-rw-rw---- 1 john None  411 Nov 30 19:15 id_rsa.pub
-rw-rw-r-- 1 john None  407 Nov 30 18:43 known_hosts

$ chmod -v 400 ~/.ssh/id_rsa
mode of `/home/john/.ssh/id_rsa' changed from 0440 (r--r-----) to 0400 (r--------)

$ ll ~/.ssh
total 6
-r--r----- 1 john None 1675 Nov 30 19:15 id_rsa
-rw-rw---- 1 john None  411 Nov 30 19:15 id_rsa.pub
-rw-rw-r-- 1 john None  407 Nov 30 18:43 known_hosts

$ set | grep CYGWIN
CYGWIN='sbmntsec ntsec server ntea'

मुझे लगता है कि मैं msysgit या कुछ और का उपयोग कर सकता था, लेकिन मैं एक ही टर्मिनल से सब कुछ करने में सक्षम होना पसंद करूंगा

संपादित करें: Msysgit समान कारणों के लिए भी काम नहीं करता है


एक ही मुद्दा यहाँ। विंडोज 8 उपभोक्ता पूर्वावलोकन।
साइमन हार्टर

"मैंने एसीएल के साथ खिलवाड़ करने की कोशिश की है, लेकिन कोई फायदा नहीं हुआ (अपने उपयोगकर्ता पर पूर्ण नियंत्रण और सभी को इनकार कर दिया 000 में परिणाम हुआ) " तो ls -lअनुमतियों के रूप में दिखाता है 000( ----------) - लेकिन क्या आप अभी भी फ़ाइल को पढ़ने में सक्षम हैं, sshऔर git cloneशिकायत करते हैं इसके बारे में? मैं अनुमान लगाता हूं कि sshबहुत सख्त होने की अनुमति के बारे में शिकायत नहीं होगी। स्रोत कोड पर एक त्वरित नज़र इस बात की पुष्टि करती है, लेकिन मैंने इसका परीक्षण नहीं किया है।
कीथ थॉम्पसन

जवाबों:


26

खाली समूह की कोई आवश्यकता नहीं है।

साइबरविन की स्थापना के दौरान सभी फाइलें किसी समूह की नहीं हैं। आप इसे कर के देख सकते हैं ls -al। आप देखेंगे कि कोई भी समूह ("नहीं") फाइलों पर है। बस इसे उपयोगकर्ताओं को बदलें:

chgrp Users *

इसके बाद आप chmodजो चाहें कर सकते हैं।


chgrp Users *केवल सभी फ़ाइलों और फ़ोल्डरों को ही बदलेगा $PWD। सभी सबफोल्डर्स / फाइलों को वेलस $ पीडब्ल्यूडी में बदलने के लिए, -R विकल्प का उपयोग करें:chgrp -R users *
adam

4

मैं एक Cygwin- विशिष्ट हैक अब के लिए इस के आसपास मिल गया है।

लघु संस्करण:
बस एक नया खाली विंडोज़ समूह बनाएँ, इस के लिए id_rsa के समूह को बदलने के लिए chgrp का उपयोग करें, और फिर समूह के लिए पढ़ने / लिखने की अनुमति से इनकार करें।

लंबा संस्करण:
सुपर की दबाएं और lusrmgr.msc टाइप करें । खाली समूह बनाने के लिए इस प्रबंधक का उपयोग करें, जिसे EMPTY_GROUP कहा जाता है

अब हमें साइगविन को इस नए समूह के बारे में बताने की आवश्यकता है।

mkgroup > /etc/group

अगला हम id_rsa के समूह को अपडेट करते हैं :

chgrp EMPTY_GROUP ~/.ssh/id_rsa

अंत में, Windows Explorer में id_rsa खोजें , और प्रॉपर्टीज में सिक्योरिटी टैब के तहत, पठन / लिखने की अनुमति से इनकार करें, और आपको जाने के लिए अच्छा होना चाहिए।

मुझे यकीन नहीं है कि साइग्विन 7 में नहीं बल्कि 8 को कैसे संभाल सकता था, लेकिन समस्या id_rsa फ़ाइल के समूह से उपजी लगती है कोई नहीं, एक समूह जो हमेशा पूर्ण पढ़ने / लिखने की पहुंच रखता है।

इसके अलावा, यह केवल ssh.exe के लिए काम करता है जो Cygwin के साथ आता है, इसलिए यदि आप git के साथ ssh.exe का उपयोग करना चाहते हैं, तो अपने git इंस्टॉल में बिन से ssh.exe को ओवरराइट करें और अपने Cyggin इंस्टॉल में बिन फ़ोल्डर से एक के साथ स्थापित करें। ।


2

विन 8 + साइगविन

मैं विंडोज 8, 64 बिट पर हूं। निम्न कार्य करना मेरे लिए इसे हल करता है:

## Start Cygwin shell
cd .ssh
chmod 600 key-file-name

1

साइबरविन में, ये कमांड टाइप करें:

  • होम फ़ोल्डर में सही समूह सेट करें:

    chgrp -Rv HomeUsers /home

  • Ssh पहचान फ़ाइलों के लिए सही अनुमतियाँ सेट करें:

    chmod 600 -Rv ~/.ssh/id*

NB: पिछला स्वीकृत उत्तर पुराना है। समूह का नाम "HomeUsers" है, "उपयोगकर्ता" नहीं, फिर भी टिप्पणी नहीं कर सकता।


1

मैं उस मुद्दे पर भी टिप्पणी करना चाहूंगा। मुझे अपने विंडोज 7 पीसी पर इसी तरह की समस्या का सामना करना पड़ा, जो साइगविन के माध्यम से गिट का उपयोग कर रहा था।

जब मेरे स्थानीय गिट रिपॉजिटरी से दूरस्थ रिपॉजिटरी (प्रमाणीकरण के लिए एक ssh और एक कीपर का उपयोग करके) से परिवर्तनों को धकेलने की कोशिश कर रहे हैं, तो git ने एक संदेश फेंक दिया कि अनुमतियाँ 0660 फ़ाइल के लिए बहुत खुली थीं

~ / .Ssh / id_rsa।

बेशक ssh- एजेंट के लिए इस खुली निजी कुंजी को अस्वीकार करना ठीक है।

इसलिए मैंने इस थ्रेड और अन्य थ्रेड्स में बताई गई चीजों की कोशिश की जो कि स्वामित्व और फाइल के rwx- पैटर्न और ~ / .ssh फ़ोल्डर से संबंधित थी।

chgrp Users ~/.ssh/*
chmod 400 ~/.ssh/id_rsa

हालाँकि, एक ही त्रुटि को बार-बार फेंका गया था।

किसी कारण के लिए यह आवश्यक था कि sg-agent प्रक्रिया को cygwin में मारें और bourne फिर से शेल (bash) में निम्न कमांड निष्पादित करें।

eval `ssh-agent -s`

Ssh- एजेंट के लिए वांछित पहचान जोड़ने के लिए मत भूलना, जैसे

ssh-add ~/.ssh/id_rsa

फिर मैंने एक मान्य पुश कमांड को दोहराया

git push origin master

और सब कुछ अच्छा काम किया।


0

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

सबसे पहले, Cygwin निर्देशिकाएँ / फ़ाइलों का स्वामित्व ले लो

निर्देशिका और उपनिर्देशिका / फाइलों से जुड़े कुछ उपयोगकर्ता खाते होंगे जो कुछ इस तरह दिखते हैं S-1-2-34-1234567890-1234567890-1234567890-123

उपयोगकर्ता का खाता

इन्हें निकालें और अपने स्वयं के उपयोगकर्ता खाते के साथ स्वामित्व लें।

  1. Propertiesसाइबरविन डायरेक्टरी तक पहुंच
  2. टैब Advancedपर क्लिक करेंSecurity
  3. Changeखुद का मालिक। आप अपने पहले नाम या संबंधित ईमेल पते पर टाइप कर सकते हैं
  4. Remove सूची से कोई भी अज्ञात उपयोगकर्ता
  5. क्लिक करें Enable Inheritance
  6. चेक करें 'इस ऑब्जेक्ट से अंतर्निहित अनुमति प्रविष्टियों के साथ सभी चाइल्ड ऑब्जेक्ट अनुमति प्रविष्टियों को बदलें
  7. OKसबसे नीचे और फिर Yesडायलॉग बॉक्स पर क्लिक करें ।

विंडोज सिक्योरिटी डायलॉग बॉक्स

फिर, सिगविन में, सभी प्रमुख फ़ाइलों के उपयोगकर्ता समूह को बदलें

से रॉय डेंटन के जवाब :

साइबरविन की स्थापना के दौरान सभी फाइलें किसी समूह की नहीं हैं। आप इसे कर के देख सकते हैं ls -al

  1. Cygwin खोलें और .sshनिर्देशिका में नेविगेट करें -cd ~/.ssh
  2. रन chgrp Users *- यह आपको chmodफ़ाइलों को ठीक से करने की अनुमति देगा ।
  3. अंत में, भागो chmod 400 *। 600 भी काम करेंगे।

यह देखने के लिए परीक्षण करें कि क्या यह काम किया है

बस अपनी पसंद के सर्वर पर ssh। मेरे मामले में, इसका बिटबकेट

अच्छा परिणाम:

$ ssh hg@bitbucket.org
PTY allocation request failed on channel 0
conq: logged in as simonhartcher.

You can use git or hg to connect to Bitbucket. Shell access is disabled.
Connection to bitbucket.org closed.

खराब परिणाम:

$ ssh hg@bitbucket.org
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/home/Simon/.ssh/id_dsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/Simon/.ssh/id_dsa
Permission denied (publickey).

2
विंडोज के लिए ओपनएसएसएच ( chgrp Users * साइबर नहीं) के साथ मुझे "C: /opscode/chef/embedded/bin/chgrp.exe" मिलता है: अमान्य समूह `उपयोगकर्ता '
जोनाथन

0
  1. id_rsa -> राइट क्लिक -> गुण -> सुरक्षा -> संपादित करें
  2. सभी समूह और उपयोगकर्ता निकालें (ठीक दबाएं या लागू न करें)
  3. जोड़ें -> अपना वर्तमान उपयोगकर्ता नाम दर्ज करें -> नाम जांचें
  4. "पूर्ण नियंत्रण" की अनुमति दें
  5. लागू

(विंडोज 10 प्रो)

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