bash: /home/user/.ssh/authorized_keys: ऐसी कोई फ़ाइल या निर्देशिका नहीं


30

एक ssh कुंजी बनाएँ:
कमांड:

ssh-keygen -t rsa –P ""

कुंजी को अधिकृत कुंजी पर ले जाना:
कमांड:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory

1
~/.ssh/authorized_keysअन्य कंप्यूटरों की कुंजियाँ हैं जिन्हें आप / ट्रस्ट से कनेक्ट करते हैं, अपनी स्वयं की कुंजी से नहीं।
सियारकोट

कुछ अनुप्रयोगों के लिए किसी की अपनी मशीन के लिए पासवर्ड रहित ssh की आवश्यकता होती है।
नेहल जे वानी

कृपया स्टैक एक्सचेंज नेटवर्क की कई साइटों पर एक ही प्रश्न पोस्ट न करें ।
टेराडॉन

आपको अपनी स्वयं की कुंजी पर भरोसा करने की आवश्यकता क्यों है? वास्तव में आप क्या करने की कोशिश कर रहे हैं?
ब्रिअम

जवाबों:


74

आपको पहली बार .sshडायरेक्टरी और authorized_keysफाइल बनानी होगी ।

  1. .sshनिर्देशिका बनाएँ :

    mkdir ~/.ssh
    
  2. सही अनुमतियाँ सेट करें:

    chmod 700 ~/.ssh
    
  3. authorized_keysफ़ाइल बनाएँ :

    touch ~/.ssh/authorized_keys
    
  4. सही अनुमतियाँ सेट करें:

    chmod 600 ~/.ssh/authorized_keys
    

अनुमतियाँ महत्वपूर्ण हैं! यह सही अनुमति के बिना काम नहीं करेगा!

अब आप जोड़ सकते हैं सार्वजनिक कुंजी के लिए authorized_keysफ़ाइल:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

आपको अपने कंप्यूटर की सार्वजनिक कुंजी को उस कंप्यूटर की authorized_keysफ़ाइल में जोड़ना होगा जिसे आप SSH कीज़ का उपयोग करके एक्सेस करना चाहते हैं !


जैसा कि टेर्डन ने उल्लेख किया है कि आप इस कमांड का उपयोग कर सकते हैं:

ssh-copy-id user@host

यह आपके id_rsa.pub(आपकी ~/.sshनिर्देशिका में) दूरस्थ कंप्यूटर की authorized_keysफ़ाइल में डाल देगा , यदि आवश्यक हो तो सही अनुमतियों के साथ .sshनिर्देशिका और authorized_keysफ़ाइल बना सकता है।


5
किसी भी मामले में, आप इसे नहीं चाहते, बस catयही ssh-copy-idहै।
टेराडो

1
वाह, अच्छा, मैंने इसे जोड़ा है।
लुई मैथिज्सेन

@LouisMatthijssen मैंने अपने रिमोट सर्वर पर कीज़ कॉपी की हैं। मैं कैसे पुष्टि कर सकता हूं कि अधिकृत_की में सार्वजनिक कुंजी जोड़ी गई है।
अमन

2

यदि आपको दूरस्थ सर्वर पर इंस्टॉल करने के लिए ईमेल में सार्वजनिक कुंजी भेजी गई है:

1) सर्वर में एसएसएच। मैंने विंडोज पर PuTTY का इस्तेमाल किया।

2) कुंजी सेट करें:

mkdir ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys

ध्यान से कुंजी को कॉपी करें और इसे संपादक विंडो में एक नई पंक्ति में पेस्ट करें। सत्यापित करें कि यह एक पंक्ति पर कब्जा कर लेता है और बचाता है।

chmod 600 ~/.ssh/authorized_keys

2

चूंकि मेरे पास पर्याप्त प्रतिष्ठा नहीं है, इसलिए मैं इसे यहां जोड़ रहा हूं। लुई मैथिज्सेन के उत्तर के अलावा अगर आप अभी भी ssh के माध्यम से लॉगिन करने में सक्षम नहीं हैं, तो एक उपयोगकर्ता के रूप में जो आपने बनाया है, जैसे

ssh username@host

तब यह मालिक की अनुमति के अभाव के कारण हो सकता है कि आपको अपने /home/username/.ssh फ़ोल्डर में जोड़ना होगा। मेरे पास एक ही मुद्दा था और आप यह अनुमति दे सकते हैं:

chown -R username:username /home/username/.ssh

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

आशा है कि यह किसी की मदद करता है।


0

प्रयत्न

 touch $HOME/.ssh/authorized_keys

उस उपयोगकर्ता के अधिकारों के साथ खाली फ़ाइल बनाने के लिए।

यह फ़ाइल तब बनाई जाती है जब आप उस उपयोगकर्ता के साथ पहले दूरस्थ होस्ट के लिए पहुँच प्राप्त करते हैं।


0

यह तब भी विफल हो सकता है, यदि कुंजी बनाते समय ssh-keygen, आप इसे फ़ाइल नाम देते हैं। मैंने कुछ नाम दर्ज किए my-ssh-file-name, और इसने फ़ोल्डर के /Users/MyUserNameबजाय कुंजी लिखी .ssh। यदि आप फ़ाइल नाम को खाली छोड़ते हैं, तो यह .sshअपेक्षा के अनुरूप लिखेगा ।

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