SSH कुंजी अनुमतियाँ Chmod सेटिंग्स?


63

मुझे अपनी वेबसाइट और उसके डेटाबेस तक पहुंचने के लिए अपनी मशीन पर SSH का उपयोग करने की आवश्यकता है (एक प्रतीकात्मक लिंक- लेकिन मैं पचाता हूं)।

निम्नलिखित समस्या: मैं कमांड दर्ज करता हूं: ssh-keygen -t dsa
सार्वजनिक / निजी dsa कुंजी जोड़ी उत्पन्न करने के लिए। मैं इसे डिफ़ॉल्ट में सहेजता हूं ( /home/user/.ssh/id_dsa): और दो बार एंटर पासफ्रेज दर्ज करें

तो मुझे यह वापस मिल गया:

चेतावनी: संयुक्त निजी कुंजी फ़ाइल!
'/Home/etc.ssh/id_rsa' के लिए अनुमतियाँ 0755 बहुत खुली हैं। यह अनुशंसा की जाती है कि आपकी निजी कुंजी फाइलें दूसरों द्वारा सुलभ न हों। इस निजी कुंजी को अनदेखा किया जाएगा। खराब अनुमतियाँ: कुंजी को अनदेखा करें: [तब VAR / LIB / SOMEWHERE में फ़ाइल पथ]

अब इस पर काम करने के लिए मैंने फिर कोशिश की-

sudo chmod 600 ~/.ssh/id_rsa         sudo chmod 600 ~/.ssh/id_rsa.pub    

लेकिन कुछ ही समय बाद मेरा कंप्यूटर जम गया- और वापस लॉग ऑन करने पर वहाँ एक could not find .ICEauthority error। मैंने इस समस्या को हल कर दिया- और SSH फ़ाइलों को हटा दिया, लेकिन भविष्य में इन मुद्दों से बचने के लिए सही अनुमतियों का उपयोग करने में सक्षम होना चाहता हूं। मुझे ICEauthority कैसे सेट करना चाहिए, या मुझे SSH कीज़ को कहाँ सहेजना चाहिए- या उनके पास क्या अनुमतियाँ होनी चाहिए? क्या वर्चुअल मशीन का उपयोग करना सबसे अच्छा होगा?

यह सब बहुत नया है और मैं बहुत ही कठिन सीखने की अवस्था में हूं, इसलिए किसी भी मदद की सराहना की।


टाइपो- क्षमा करें, कुंजियों का सिर्फ एक सेट उत्पन्न हुआ था!
crissixpaul

.ssh के लिए अनुमतियाँ भी उतनी ही महत्वपूर्ण हैं जितनी महत्वपूर्ण अनुमतियाँ। यह 600 होना चाहिए। इसे ठीक करने के लिए chmod -R 600 ~/.ssh:।
KWubbufetowicz

4
वास्तव में .ssh निर्देशिका अनुमतियों को 700 नहीं 600 होने की आवश्यकता होती है। निष्पादन अनुमति वह है जो आपको उस निर्देशिका के अंदर क्या करने के लिए पहुँच प्रदान करती है। तो सही आज्ञा होनी चाहिए chmod 700 $HOME/.sshऔरchmod 600 $HOME/.ssh/id_rsa
मेलबर्स्सल

। Theautautity के बारे में त्रुटि chmodआपके द्वारा दिखाए जाने वाले आदेशों से संबंधित नहीं है । या तो यह एक संयोग है या आपने कुछ अन्य कमांड चलाए हैं जो आप हमें नहीं दिखा रहे हैं।
गाइल्स

जवाबों:


92

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub(यानी chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub) सही हैं।

chmod 644 ~/.ssh/id_rsa.pub(यानी chmod a=r,u+w ~/.ssh/id_rsa.pub) भी सही होगा, लेकिन chmod 644 ~/.ssh/id_rsa(यानी chmod a=r,u+w ~/.ssh/id_rsa) नहीं होगा। आपकी सार्वजनिक कुंजी सार्वजनिक हो सकती है, जो मायने रखता है कि आपकी निजी कुंजी निजी है।

इसके अलावा आपकी .sshनिर्देशिका स्वयं आपके द्वारा ही लिखी जानी चाहिए: chmod 700 ~/.sshया chmod u=rwx,go= ~/.ssh। आप निश्चित रूप से इसे पढ़ने और इसमें फ़ाइलों तक पहुँचने (अनुमति निष्पादित करने) में सक्षम होने की आवश्यकता है। अगर कोई इसे पढ़ सकता है तो यह सीधे तौर पर हानिकारक नहीं है, लेकिन यह उपयोगी भी नहीं है।

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

आपके द्वारा दिखाए .ICEauthorityजाने वाले chmodआदेश से संबंधित त्रुटि नहीं है । या तो यह एक संयोग है या आपने कुछ अन्य कमांड चलाए हैं जो आप हमें नहीं दिखा रहे हैं।


~ / .Ssh / ज्ञात_होस्ट पर अनुमतियाँ क्या होनी चाहिए?
नीक

0

मैं ऊपर दिए गए उत्तर जोड़ना चाहता हूं कि मेरे लिए मेरे घर निर्देशिका ( ~/) को भी अनुमति की आवश्यकता है 755, भले ही ~/.sshऔर फ़ाइलों की अनुमति के बिना । (यह एक Synology NAS पर था, सभी linuxes पर लागू नहीं हो सकता है)

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