ssh अब ~ / .ssh / config का उपयोग नहीं कर रहा है


20

मैं जो कुछ भी करने में सक्षम था, उसे मैं नहीं कर सकता। थोड़ी खुदाई के बाद मुझे पता चला कि यह मेरे होम डायरेक्टरी से ssh config नहीं पढ़ रहा है।

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)

जब एक दोस्त के समान कंप्यूटर पर, जहां सब कुछ काम करता है यह इस तरह दिखता है:

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)

इसने पहले काम किया और मुझे इस समस्या के कारण के बारे में कुछ भी पता नहीं है। यह कैसे हो सकता है, और इसे कैसे ठीक किया जाए?

प्रलेखन लिंक में, टाई द्वारा इंगित किया गया है कि यह बताता है

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

मेरी अनुमति हैं:

$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba  1029   1428 Jul  1 16:33 ..
-rwx------   1 kuba  1029   1528 May 15 13:07 config
(...)

मुझे लगता है कि समस्या होम डाइरेक्टरी के बारे में भ्रम के साथ हो सकती है। जब मैं स्थानीय कॉन्फ़िग फ़ाइल को बाध्य करता हूं तो यह काम करना शुरू कर देता है, और फिर अचानक से पढ़ना शुरू कर देता है/nas/kuba

$ ssh -xvvvF ~/.ssh/config server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
debug1: /Users/kuba/.ssh/config line 1: Applying options for *
debug1: /Users/kuba/.ssh/config line 39: Applying options for bio
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXXX [YYYY.YYY.YYY.YYY] port 22.
debug1: Connection established.
debug1: identity file /nas/kuba/.ssh/id_dsa type -1
                      ^^^^^^^^^^

लेकिन मेरे घर की मर्यादा ठीक लगती है:

$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba

4
मैं एक समस्या को हल करने में सक्षम था। मैंने ~ / .ssh से /nas/kuba/.ssh की सामग्री की प्रतिलिपि बनाई। तो यह वास्तव में ssh के साथ समस्या है अचानक गलत घर निर्देशिका का उपयोग करना, जो कि वास्तव में एक ssh समस्या नहीं है।
कुबा

आखिरी टिप्पणी प्रश्न में संपादित करने के लिए बहुत उपयोगी जानकारी होगी।
डेविड

आपका आउटपुट इंगित करता है कि आप डीएसए का उपयोग कर रहे हैं। मुझे आरएसए पर स्विच करने का एक तरीका मिलेगा, क्योंकि यह सबसे अच्छा / नवीनतम है और मेरा मानना ​​है कि डीएसए टूट गया है।
trysis

3
@ क्यूबा जहाँ तक मैं बता सकता हूँ पर्यावरण चर को sshनजरअंदाज करता HOMEहै। उपेक्षा करना बुरा व्यवहार है HOME, ऐसा लगता है कि क्या sshकरता है। यदि यह उपयोग नहीं करता है HOME, तो एकमात्र विकल्प जिसके बारे में मैं जानता हूं, वह है इसे ऊपर से देखना uid। यदि आपके पास /etc/passwdसमान के साथ दो प्रविष्टियां हैं uid, तो दोनों एक ही .ssh/configफ़ाइल का उपयोग करके समाप्त हो जाएंगे, भले ही उनके पास अलग-अलग घर हों।
कास्परड 16

1
@kasperd, कि एक जवाब होना चाहिए। यह इस पृष्ठ पर एकमात्र ब्रेडक्रंब है जिसने मेरी स्थिति के साथ मदद की । धन्यवाद!
वाइल्डकार्ड

जवाबों:


14

आप उपयोगकर्ता विशिष्ट बनाम वैश्विक ssh_config के बीच फंस गए हैं।

अधिक विवरणों को समझने के लिए कृपया अपने उपयोगकर्ता की कॉन्फ़िगरेशन फ़ाइल ( ~/.ssh/config) और आपके सिस्टम-वाइड कॉन्फ़िगरेशन फ़ाइल ( /etc/ssh/ssh_config) की अनुमति सेटिंग्स की जाँच करें ।

आप इसके बारे में और अधिक यहाँ पढ़ सकते हैं । व्यावहारिक रूप से, आपके उपयोगकर्ता आधारित .sshनिर्देशिका के तहत सभी फाइलें 600 पर होनी चाहिए, और configफ़ाइल 644 पर होनी चाहिए। आप इसे अपने होम निर्देशिका में निम्न आदेशों के साथ सेट कर सकते हैं:

chmod 600 ~/.ssh/* 
chmod 644 ~/.ssh/config

तो मैं डॉक्टर से समझता हूं कि इसे पहले मेरे होम डायरेक्टरी से कॉन्फिगर पढ़ना चाहिए, और बाद में ग्लोबल (/ etc / ssh / ssh_config) से सवाल है - यह मेरे लोकल कॉन्फिगर को ommitting क्यों है?
कुबा

इसके बाद के संस्करण जवाब अद्यतन
दोग़ला कुत्ता

मैंने कोशिश की। कुछ नहीं बदला। मैंने अधिक विवरणों के साथ अपना उद्धरण अपडेट किया।
कुबा

यदि आप संपादन करते समय बड़े पैमाने पर प्रश्न से ऊपर उठे हैं: debug1: /Users/kuba/.ssh/config पंक्ति 1: * debug1 के लिए विकल्प लागू करना: /Users/kuba/.ssh/config लाइन 39: बायो के रीडिंग ऑप्शन के लिए विकल्प लागू करना। और आपका कॉन्फ़िगरेशन वाइल्डकार्ड भूमिका निभा रहा है। मैं परिभाषित पोर्ट और डेस्ट सर्वर के साथ परीक्षण करने के लिए सरल कॉन्फिग फाइल रखूंगा।
दोग़ला कुत्ता

वास्तव में मैंने इस सवाल को काफी हद तक बदल दिया कि मुझे इसे बंद करना चाहिए। ऐसा लगता है कि ssh अन्य निर्देशिका को मेरे होम फ़ोल्डर के रूप में मान रहा है। कुछ ऐसा जो न तो ~ और न ही $ HOME है।
कुबा

3

अनुमतियाँ जांचें

ls -lsd ~/.ssh

तथा

ls -ls ~/.ssh/*

यदि अनुमतियां खराब हैं, तो ssh क्लाइंट इससे पढ़ने की कोशिश नहीं करेगा


0 drwx ------ 9 kuba /Users/kuba/.ssh 8 -rwx ------ 1 kuba /Users/kuba/.ssh/config उन सभी का मालिक है, जैसे मैं देख रहा हूँ
Kuba

@ क्युबा ने ls के साथ प्रयास किया ~ ~
.ssh

ls -la ~ / .ssh कुल 80 drwx ------ 9 kuba 1029 306 जुलाई 1 16:33। drwx ------ + 42 kuba 1029 1428 Jul 1 16:33 .. -rw-r - r-- 1 kuba 1029 406 मई 7 14:53 अधिकृत_की -rwx ------ 1 kuba 1029 1528 १५ मई १३:०२ config -rwx ------ १ कुबा १०२ ९ १६ 7५ मई id १४:५३ id_rsa -rwx ------ १ कुबा १०२ ९ ४०६ मई :53 १४:५३ id_rsa.pub -rw-r-- r-- 1 कुबा 1029 16049 मई 22 09:36 ज्ञात_होस्ट्स
कुबा

@ क्या आपको यकीन है, आप घर के उपयोगकर्ता को खोलने के लिए नहीं हैं?
c4f4t0r

2
वहाँ + वहाँ ... कि ACLs नहीं है? वह अपराधी हो सकता है?
जॉर्ज सुआरेज़ डे लिस

0

मेरे पास एक ही मुद्दा था और मैं इसे अपने ~/.sshडीआईआर (0700) पर + x ध्वज सेट करते हुए ठीक करने में सक्षम था , जबकि 06.4 सेट पर भी ~/.ssh/config


0

इसके लायक होने के लिए, मेरे पास एक ही समस्या थी और .sshफ़ोल्डर को फिर से बनाने के लिए ssh बनाकर इसे ठीक कर दिया (बस sshकुछ नाम बदलें और कुछ ssh कमांड निष्पादित करें), और बाद में आवश्यक अनुमतियों के साथ आवश्यक फाइलों को कॉपी करें। (600 के साथ कॉन्फ़िगर करें)।

जाहिर तौर पर ssh संदिग्ध हो जाता है अगर फ़ोल्डर .sshको इस तरह से संशोधित किया जाता है, जो इसे अनुमोदित नहीं करता है ...


0

यदि यह एनएफएस-माउंटेड फाइल सिस्टम पर है तो एसएसएच स्थानीय कॉन्फ़िगरेशन को नहीं पढ़ेगा। यह जाँचने योग्य है क्योंकि सभी अनुमतियां ठीक हो सकती हैं और SSH (कम से कम संस्करण 6.6) आपको कोई संकेत नहीं देगा कि यह उपयोगकर्ता कॉन्फ़िगरेशन क्यों नहीं पढ़ रहा है। (हालांकि, यदि आप -Fविकल्प का उपयोग करते हैं, तो इसे एनएफएस वॉल्यूम से पढ़ें ।)


0

मुझे मैकओ पर इसी मुद्दे का सामना करना पड़ा। मैन्युअल लॉगिन (ssh @) की डिबग जानकारी को देखने से, मुझे पता चला कि जाहिरा तौर पर ssh ने सोचा था कि मेरे घर की निर्देशिका थी /srv/home/<userid>और .sshवहां निर्देशिका की तलाश कर रही थी, और एक को अनदेखा कर दिया/Users/<userid>/.ssh/

यह शायद मैक को एक विशिष्ट तरीके से स्थापित करने के काम के साथ कुछ करने के लिए मिला है, लेकिन मैं यह जांचने की सलाह दूंगा कि sshऑपरेटिंग सिस्टम इस बात से सहमत है कि होम डायरेक्टरी कहां है;)


0

जैसा कि प्रश्न पर उनकी टिप्पणी में 'कास्परड' ने संकेत दिया है, ध्यान दें कि sshआवश्यक रूप से '$ {HOME} /। Ssh / config' नहीं दिखेगा। जैसा कि पता चला था, गहरी खुदाई करना और यह सीखना महत्वपूर्ण है कि लॉगऑन के समय घर की निर्देशिका कहां थी और इससे पहले कि एक नया होम डाला गया था।

ssh -xvvvF ~/.ssh/config serverइस बहुत ही सवाल का जवाब देने में मदद करने के उत्पादन के माध्यम से देखने का संकेत बहुत ही व्यावहारिक था। एक सिस्टम पर खुद को खोजने पर जहां दो अलग-अलग उपयोगकर्ता नामों में '/ etc / passwd' फ़ाइल में एक ही UID होता है, यह समस्या सामने आई थी। दो उपयोगकर्ताओं के पास '/ etc / passwd' में अलग अलग गृह निर्देशिकाएँ हैं।

ऐसे परिदृश्य में, यह पता चलता है कि यदि कोई व्यक्ति '/ etc / passwd' फ़ाइल में डुप्लिकेट UID के साथ दूसरे उपयोगकर्ता के रूप में लॉग इन होता है, sshतो SSH चलाने वाले उपयोगकर्ता के मेल खाते UID के साथ पहले उपयोगकर्ता की होम डायरेक्टरी का उपयोग करता है आदेश।

दी, यह प्रयोग मामला बहुत अजीब है, और अधिकांश लोगों के लिए मदद नहीं करेगा, लेकिन यह वास्तव में हुआ, और इस क्यू / ए ने एक समस्या को हल करने में मदद की।


0

यह फ़ाइल अनुमति सेटिंग के कारण हुआ था।

अपनी .sshdir और फ़ाइलों की अनुमतियों की जाँच करें, अपने घर की dir अनुमति सेटिंग्स की भी जाँच करें।

मेरे लिए, मैं नहीं चाहता कि अन्य लोग मेरी निजी फाइलों को देखें, इसलिए मैं xअपने घरों की अनुमति हटाता हूं। जो ssh को गलत रास्ते पर अधिकृत कुंजी खोजने के लिए प्रेरित करता है।

इसे ठीक करने का एक तरीका /etc/ssh/sshd_configउदाहरण के लिए एक और प्राधिकरण मार्ग निर्धारित करना था :

AuthorizedKeysFile। Ssh / अधिकृत_कीप / आदि / ssh / अधिकृत_की

फिर अपने पब को कॉपी करें /etc/ssh/authorized_keys, मेरे लिए काम किया।

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