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


11

एक 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

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

@Braiam मैंने ऐसा तब किया है जब मेरी होम डायरेक्टरी नेटवर्क ड्राइव पर थी। इसने मुझे इस ड्राइव पर चलने वाली किसी भी मशीन के लिए ssh करने की अनुमति दी। तो मैं अपने मेजबान के लिए sshing नहीं था।
एफडिनॉफ

जवाबों:


13
bash: /home/user/.ssh/authorized_keys: No such file or directory

पथ का एक तत्व /home/user/.ssh/मौजूद नहीं है; शेल ( bash) >>कमांड निष्पादित करने से पहले पुनर्निर्देशन ( ) की जांच करता है cat। अगर /home/userमौजूद है और आप यह कोशिश करते हैं:

cat $HOME/.ssh/id_rsa.pub >> $HOME/test_this

अब आपको मिलेगा:

cat: /home/user/.ssh/id_rsa.pub: No such file or directory

चूँकि वह फ़ाइल उस जगह पर नहीं हो सकती है, अगर /home/user/.ssh/शुरू करने के लिए मौजूद नहीं है।

आप कुछ निर्देशों का पालन कर रहे हैं संभवतः कुछ बिट्स को छोड़ दिया है। निर्देशिका बनाने के लिए:

mkdir $HOME/.ssh
chmod 700 $HOME/.ssh

हालाँकि, id_rsa.pubवहाँ नहीं होगा। यह वह जगह होगी जहां आपने ssh-keygenपहली बार में कमांड को चलाया था ।


6

सुनिश्चित करें कि आप उस उपयोगकर्ता के रूप में लॉग इन हैं जिसे आप पहले के लिए ssh कुंजी बनाना चाहते हैं (या सही होम डायरेक्टरी में कमांड में पथ को संशोधित करने के लिए तैयार रहें)।

तो बस निर्देशिका बनाएँ:

mkdir ~/.ssh

catआपके द्वारा ऊपर सूचीबद्ध कमांड का उपयोग करके फ़ाइल बनाएं । फिर अनुमतियाँ सही ढंग से सेट करना न भूलें:

chmod 400 ~/.ssh/authorized_keys

आप यह सुनिश्चित करना चाह सकते हैं कि .ssh निर्देशिका के पास उपयुक्त अनुमति भी हो।


1
जैसा कि आपकी अंतिम टिप्पणी का तात्पर्य है, हाँ मुझे लगता है कि आपको जरूरत हैchmod 700 ~/.ssh
KCD

6

यदि संभव हो तो मैं हमेशा लोगों को कमांडलाइन टूल का उपयोग करने के लिए प्रोत्साहित करता हूं ssh-copy-id

$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine

यदि आप अपनी डिफ़ॉल्ट SSH सार्वजनिक कुंजी को दूरस्थ रूप से कॉपी करना चाहते हैं, तो आप निम्नलिखित कमांड चला सकते हैं:

$ ssh-copy-id user@remoteserver

मैं इस Q & A शीर्षक में इस टूल का उपयोग करने का वास्तविक पूर्ण उदाहरण दिखाता हूं: rsync के साथ ssh कनेक्शन साझा नहीं कर सकता


0

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


या निश्चित रूप से आप सीधे .ssh फ़ोल्डर में कस्टम कुंजी लिखना निर्दिष्ट कर सकते हैं:-f ~/.ssh/custom-key-name
संसद '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.