"Key_load_public: ऐसी कोई फ़ाइल या निर्देशिका" का क्या अर्थ है?


40

मैं एक समस्या का निवारण कर रहा हूँ PubkeyAuthentication। जब मैं वर्बोज़ मोड का उपयोग करता हूं, तो मुझे बहुत से "key_load_public: no ऐसी कोई फ़ाइल या निर्देशिका" दिखाई देती है

जाहिर है, चाबियाँ फाइलसिस्टम पर बाहर निकलती हैं, ताकि संदेश को एक प्रथागत अर्थ न दिखाई दे:

$ ls -al ~/.ssh/id_*
-rw-------  1 jwalton  staff   751 Feb  4  2013 id_dsa
-rw-------  1 jwalton  staff   608 Feb 18  2015 id_dsa.pub
-rw-------  1 jwalton  staff   314 Feb  4  2013 id_ecdsa
-rw-------  1 jwalton  staff   180 Feb 18  2015 id_ecdsa.pub
-rw-------  1 jwalton  staff   464 Aug 23 18:15 id_ed25519
-rw-------  1 jwalton  staff   103 Aug 23 18:15 id_ed25519.pub
-rw-------  1 jwalton  staff  2546 Feb  4  2013 id_rsa
-rw-------  1 jwalton  staff   572 Feb 18  2015 id_rsa.pub

क्या, वास्तव में, "key_load_public: ऐसी कोई फ़ाइल या निर्देशिका" का मतलब नहीं है?


मेरी .ssh/configफ़ाइल है:

$ cat ~/.ssh/config
IdentityFile ~/.ssh/id_ed25519
IdentityFile ~/.ssh/id_ecdsa
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/id_rsa

*.pubएक्सटेंशन जोड़ने से कोई प्रभाव नहीं पड़ता है। मैंने दोनों के साथ और उसके बिना कोशिश की *.pubक्योंकि मैन पेज सम्मान के साथ अस्पष्ट है, जिसके लिए कुंजी को निर्दिष्ट करने की आवश्यकता है - सार्वजनिक या निजी। (एक जघन्य कुंजी एक पहचान के लिए आवश्यक है; एक चुनौती / प्रतिक्रिया में कुंजी के स्वामित्व को साबित करने के लिए एक निजी कुंजी की आवश्यकता है:

IdentityFile
    Specifies a file from which the user's DSA, ECDSA or DSA authen-
    tication identity is read...

$ ssh -v -p 1522 jwalton@192.168.1.11
OpenSSH_7.1p1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /Users/jwalton/.ssh/config
debug1: Reading configuration data /usr/local/etc/ssh_config
debug1: Connecting to 192.168.1.11 [192.168.1.11] port 1522.
debug1: Connection established.
debug1: identity file /Users/jwalton/.ssh/id_ed25519.pub type 4
debug1: key_load_public: No such file or directory
debug1: identity file /Users/jwalton/.ssh/id_ed25519.pub-cert type -1
debug1: identity file /Users/jwalton/.ssh/id_ecdsa.pub type 3
debug1: key_load_public: No such file or directory
debug1: identity file /Users/jwalton/.ssh/id_ecdsa.pub-cert type -1
debug1: identity file /Users/jwalton/.ssh/id_dsa.pub type 2
debug1: key_load_public: No such file or directory
debug1: identity file /Users/jwalton/.ssh/id_dsa.pub-cert type -1
debug1: identity file /Users/jwalton/.ssh/id_rsa.pub type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/jwalton/.ssh/id_rsa.pub-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
...

जवाबों:


62

इसका शाब्दिक अर्थ है कि यह क्या कहता है: ऐसी कोई फ़ाइल या निर्देशिका नहीं है जिसे ssh एक्सेस करना चाहता था।

हालाँकि, यह नीचे उल्लिखित फ़ाइल के बारे में बात करता है , ऊपर नहीं। आपके पास बस नियमित सार्वजनिक कुंजियाँ हैं, लेकिन आपके पास उनके लिए SSH प्रमाणपत्र नहीं हैं (संभवत: इसलिए कि आपको उनकी आवश्यकता नहीं है)। OpenSSH हमेशा .pub-certप्रत्येक पहचान कुंजी के लिए संबद्ध फ़ाइल को लोड करने का प्रयास करेगा ।


Ssh-keygen (1) मैनुअल एक OpenSSH प्रमाणित प्राधिकरण बनाने और प्रमाण पत्र पर हस्ताक्षर करने के बारे में बात करता है, क्या आपको रुचि होनी चाहिए। (ध्यान दें: यह X.509 का उपयोग नहीं करता है, केवल ओपनएसएसएच का स्वयं का प्रमाणित प्रारूप है।)

आमतौर पर प्रमाण पत्र केवल तभी उपयोगी होते हैं जब आपके पास उपयोगकर्ताओं (और / या सर्वरों) की एक विशाल मात्रा होती है, लेकिन कर्बरोस का उपयोग नहीं करना चाहते हैं।


थैंक्स ग्रैविटी। के लिए IdentityFile, मुझे क्या निर्दिष्ट करना चाहिए? सार्वजनिक कुंजी या निजी कुंजी?
jww

यह निजी कुंजी फ़ाइल होनी चाहिए (जिसमें वास्तव में पूरी कीपर शामिल है - अतिरिक्त .pubफ़ाइल केवल [प्रकार] सुविधा के लिए है)।
ग्रैविटी

5
ओफ़्फ़, अब वह उलझन में है। किसी को वास्तव में बग रिपोर्ट दर्ज करनी चाहिए:
einpoklum

1
अगर "फ़ाइल बग रिपोर्ट" से आपका मतलब है "सबमिट सबमिट करें", तो ऐसा करने के लिए स्वतंत्र महसूस करें: github.com/openssh/openssh-portable/blob/master/README#L38 :)। यहां से देखना शुरू करने का स्थान है: github.com/openssh/openssh-portable/blob/master/key.c#L342 और github.com/openssh/openssh-portable/blob/master/shsh.c#L2091
अलेक्जेंडर बर्ड

10
कभी-कभी "बग रिपोर्ट" का शाब्दिक अर्थ "बग रिपोर्ट" होता है। प्रत्येक खुलने वाला उपयोगकर्ता C प्रोग्रामर नहीं है।
ग्रैविटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.