सवाल .Ssh फ़ोल्डर में निजी कुंजी पर अनुमतियाँ?


मैंने अपनी अनुमतियों को बदल दिया .ssh फ़ोल्डर और अब जब मैं अपने निजी कुंजी का उपयोग करने वाले सॉफ़्टवेयर का एक टुकड़ा उपयोग करता हूं, तो मुझे हर बार अपना पासवर्ड टाइप करना होगा। मेरे पर मेरी अनुमति क्या होनी चाहिए id_rsa प्रत्येक बार जब मैं ऐप का उपयोग करता हूं तो पासवर्ड टाइप करने की आवश्यकता नहीं है?

वर्तमान में मेरी अनुमतियां इस पर सेट हैं:

-rw-------@ 1 Jody  staff   114 Nov  4 23:29 config
-rw-------  1 Jody  staff  1743 Oct 21  2009 id_rsa
-rw-------@ 1 Jody  staff   397 Oct 21  2009 id_rsa.pub 
-rw-------@ 1 Jody  staff  3855 Sep 13 22:35 known_hosts

297
2017-11-26 22:04


मूल




जवाब:


आम तौर पर आप अनुमतियां चाहते हैं:

  • .ssh निर्देशिका: 700 (drwx------)
  • सार्वजनिक कुंजी (.pub फ़ाइल): 644 (-rw-r--r--)
  • निजी चाबी (id_rsa): 600 (-rw-------)
  • आखिर में आपकी होम निर्देशिका समूह या अन्य द्वारा लिखित नहीं होनी चाहिए (अधिकतर 755 (drwxr-xr-x))।

मुझे लगता है कि आपका मतलब है कि आपको हर बार अपना सिस्टम / उपयोगकर्ता पासवर्ड दर्ज करना होगा, और इससे पहले कि आपको यह नहीं करना पड़ेगा। cdhowie की प्रतिक्रिया यह मान रही है कि आप अपनी चाबियाँ उत्पन्न करते समय पासवर्ड / पासफ्रेज सेट करते हैं, और यदि आपने ऐसा किया तो वह कहता है कि जब तक आप एक एसएसएच एजेंट का उपयोग नहीं करते हैं तब तक आपको अपना पासवर्ड दर्ज करना होगा।


506
2017-11-26 22:24



मैंने कहीं और पाया कि अगर अधिकृत_कीज फ़ाइल का उपयोग कर रहा है, तो इसे 640, यानी -आरडब्ल्यू-आर ----- के लिए chmod'd किया जाना चाहिए। - AnneTheAgile
मैन्युअल पृष्ठों में मुझे यह जानकारी कहां मिल सकती है? - Sonique
मैं इस पोस्ट पर लगभग 30 बार वापस आ गया हूं। मुझे विश्वास नहीं है कि मैं इसे याद नहीं कर सकता। - JREAM
केवल एक ही महत्वपूर्ण बात ये है कि एसएसएच में कुछ भी किसी और के लिए लिखने योग्य नहीं है और किसी भी गुप्त कुंजी को किसी और के लिए पठनीय नहीं किया जाता है। - Markus Kuhn
@ निर्देशिका में अनुमति निष्पादित अनुमति उस निर्देशिका के तत्काल बाल फ़ाइलों / डीआईआर को सूचीबद्ध करने की क्षमता प्रदान करती है, फ़ोल्डर के अंदर की फाइलें अपने मूल फ़ोल्डर के निष्पादित बिट को "उत्तराधिकारी" नहीं देती हैं। - Thomas


मैं इसके साथ हमेशा के लिए संघर्ष कर रहा था और अंत में पता लगाया कि क्या जरूरत है। बदलने के $USER हर जगह एसएसएच उपयोगकर्ता नाम के साथ आप सर्वर पर लॉग इन करना चाहते हैं। यदि आप लॉगिन करने की कोशिश कर रहे हैं root आपको उपयोग करने की आवश्यकता होगी /root/.ssh आदि के बजाय /home/root/.ssh गैर-रूट उपयोगकर्ताओं के लिए यह कैसे है।

  • सर्वर पर होम निर्देशिका दूसरों द्वारा लिखने योग्य नहीं होना चाहिए: chmod go-w /home/$USER
  • सर्वर पर एसएसएच फ़ोल्डर 700 अनुमतियों की आवश्यकता है: chmod 700 /home/$USER/.ssh
  • Authorized_keys फ़ाइल को 644 अनुमतियों की आवश्यकता है: chmod 644 /home/$USER/.ssh/authorized_keys
  • निश्चित करें कि user फाइलों / फ़ोल्डरों का मालिक है और नहीं root: chown user:user authorized_keys तथा chown user:user /home/$USER/.ssh
  • जेनरेट की गई सार्वजनिक कुंजी रखें (से ssh-keygen) उपयोगकर्ता में authorized_keys सर्वर पर फ़ाइल
  • सुनिश्चित करें कि उपयोगकर्ता की होम निर्देशिका उस चीज़ पर सेट है जिसे आप उम्मीद करते हैं और इसमें सही है .ssh फ़ोल्डर जिसे आप संशोधित कर रहे हैं। यदि नहीं, तो उपयोग करें usermod -d /home/$USER $USER इस मुद्दे को ठीक करने के लिए
  • अंत में, एसएसएच पुनरारंभ करें: service ssh restart
  • फिर सुनिश्चित करें कि स्थानीय उपयोगकर्ता के पास क्लाइंट की सार्वजनिक कुंजी और निजी कुंजी फ़ाइलें हैं .ssh फ़ोल्डर और लॉगिन: ssh user@host.com

70
2018-06-09 20:39



आपके पहले पैराग्राफ के बारे में, मैं अपने स्थानीय लिनक्स बॉक्स (जैसे उदा। उपयोगकर्ता के साथ सार्वजनिक / निजी कुंजी के साथ ssh करने में सक्षम हूं। abc), दूरस्थ सर्वर पर उपयोगकर्ता से अलग (उदा। def@123.456.789)। मुझे बस यह सुनिश्चित करना था कि स्थानीय उपयोगकर्ता स्थानीय .ssh फ़ाइलों (उदा। abc:abc, नहीं root:abc) ` - Michael
नए दोस्तों, एलेक्स के लिए सभी चरणों और आदेशों को रखने के लिए धन्यवाद। आपका यहां सबसे उपयोगी उत्तरों में से एक है। - Nav
+1। "Authorized_keys फ़ाइल को 644 अनुमतियों की आवश्यकता है" <= वह महत्वपूर्ण था! - Le Quoc Viet
यदि आप .ssh निर्देशिका दे रहे हैं 700 मोड, फिर वहाँ है कोई फायदा नहीं समूह और दूसरों को आर - देने में केवल आप "एसएसएच" के माध्यम से जा सकते हैं (मान लें कि इन फ़ाइलों के लिए कोई हार्ड लिंक मौजूद नहीं है)। स्वीकृत उत्तर के लिए वही। डिफ़ॉल्ट 755 पर्याप्त है। - user3125367


यह भी सुनिश्चित करें कि आपकी होम निर्देशिका अन्य उपयोगकर्ताओं द्वारा लिखित नहीं है।

chmod g-w,o-w ~


32
2018-01-03 03:50



एफवाईआई, यह आदेश मानता है कि आप उपयोगकर्ता के रूप में लॉग इन हैं और रूट नहीं हैं - Alex W


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

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


5
2017-11-26 22:07



एसएसएच एजेंट के बारे में अतिरिक्त जानकारी के लिए धन्यवाद। ऐसा लगता है कि तेंदुए में बनाया गया है इसलिए मुझे लगता है कि मैं ऐसा करूँगा। इसके साथ कुछ परेशानी हो रही है लेकिन मैं एक और सवाल पूछूंगा।
अनुमतियों को कम मत समझो। वे निश्चित रूप से अभी भी खेल में आते हैं। - Alex W
@AlexW वे एसएसएच के अन्य पहलुओं के साथ खेलते हैं, लेकिन सवाल में किसी के बारे में नहीं पूछा जाता है। - cdhowie
यदि आपके पास निजी कुंजी पर कोई पासवर्ड नहीं है (स्क्रिप्ट नामक स्वचालित रिमोट की झलक), तो यह आपकी मदद नहीं करेगा। यहां अनुमतियां आवश्यक हैं। - nerdoc
"मुझे हर बार अपना पासवर्ड टाइप करना होगा। मेरी id_rsa फ़ाइल पर मेरी अनुमतियों को प्रत्येक बार जब मैं ऐप का उपयोग करता हूं तो पासवर्ड टाइप करने की आवश्यकता नहीं है?" - Craig Hicks


फ़ेलिप सही है - आपकी .ssh निर्देशिका वाली निर्देशिका समूह या अन्य द्वारा लिखित नहीं होनी चाहिए। इस प्रकार chmod go-w ~ यह चलने के बाद अगली तार्किक बात है कि क्या आपको अभी भी पासवर्ड के लिए संकेत दिया जाता है जब दौड़ने के बाद ssh'ing ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys, मानते हुए कि आप ssh-keygen कमांड में पासफ्रेज असाइन नहीं करते हैं, और आपकी .ssh निर्देशिका आपकी होम निर्देशिका में है।


4
2018-04-17 20:20