पोटीन: सर्वर प्राप्त करना हमारी मुख्य त्रुटि से इनकार कर दिया


86

मैंने कुंजी जोड़ी का उपयोग करके बनाया puttygen.exe(क्लाइंट विंडोज़ 8 है)। सर्वर (Ubuntu 12.04.3 LTS) पर, मैंने अपनी सार्वजनिक कुंजी डाल दी है ~/.ssh/authorized_keys। सार्वजनिक कुंजी यह है:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAopfM6RHOgnuc4Aftn3t4k5UIAT3StCAbn/vg/IMbphbXadshC+79sIlRq3P4zGzMjFTP4hKnzu6ehLV5lmj/qorq3SKT+bPO5Qrac3VbIlrGvuBFDDjP82I2Hwg3HzlsFTstqk++KToapaTYZ7jENEYyPl2wnzITJnt//+4U1o6juoXTKgdNE02hHnRZyHOV/bnkZyJJCEwJv5U0eXSThQnhmXtUxGT8U0HQNFiXfqIIVllhWiCnyrhhIaKz/CIJNAd2VmzyJzQtJtTQX8aWSNVrZju6Sv2/RncTNvsACdNgjjh/FH8PQXaep00jlJ3MOdsC8vz6VSPFbh6iKy1oLQ== rsa-key-20131231

तो यह सही है (एक पंक्ति, कोई टिप्पणी नहीं, ssh-rsa, आदि से शुरू होती है)

.ssh dir अनुमति स्तर 700 है, अधिकृत_की फ़ाइल अनुमति 600 है। निर्देशिका और फ़ाइल दोनों उस वास्तविक उपयोगकर्ता के स्वामित्व में हैं जिसे मैं लॉग इन करने का प्रयास करता हूं।

जब मैं कनेक्ट करने की कोशिश कर रहा हूं तो मुझे मिल रहा है 'server refused our key'और सर्वर पासवर्ड मांगता है। बस इतना ही। /var/log/auth.logकुंजी के साथ लॉग इन करने का प्रयास करते समय कुछ भी लॉग नहीं किया जाता है ।

मैंने हर जगह देखा है और सभी लेखों और युक्तियों में फ़ाइल / निर्देशिका के लिए chmod 600 और 700 को सेट करने और कुंजी को सही ढंग से प्रारूपित करने का उल्लेख है। मैंने यह सब अभी भी किया जा रहा है 'हमारी कुंजी से इनकार कर दिया' त्रुटि और मैं विचारों से बाहर हूं।


2
क्या आपने पुट्टी को उसी कुंजी का उपयोग करने के लिए कहा था? क्या आप उसी उपयोगकर्ता के साथ लॉग इन कर रहे हैं? क्या यह डिफ़ॉल्ट SSH इंस्टॉलेशन है, या आपने sshd_config को संशोधित किया है?
नोआम रतौस

Puttygen 3 कुंजी उत्पन्न करता है: निजी, सार्वजनिक और .ppk एक्सटेंशन के साथ यह निजी कुंजी का अपना संस्करण है। मैं पाठ्यक्रम का उपयोग कर रहा हूँ। putty.exe के साथ .kk और सर्वर पर .sh / अधिकृत_की में सार्वजनिक कुंजी चिपकाई। यह डिफ़ॉल्ट SSH इंस्टॉलेशन / कॉन्फ़िगरेशन है, मैंने sshd_config को संशोधित नहीं किया है।
पावेलरमैन

BTW, मुझे .shsh डायरेक्टरी और auhtorized_keys बनाने थे, क्योंकि यह ताजा उबंटू इंस्टॉलेशन है और यह वहां नहीं था। शायद इस मुद्दे के साथ कुछ करना है?
पावेलरमैन

3
सुनिश्चित करें कि sshd_config सार्वजनिक कुंजियों का उपयोग करने के लिए कॉन्फ़िगर किया गया है, यह नहीं हो सकता है
Noam Rathaus

2
क्या आपको /var/log/auth.log में कुछ दिखाई देता है? SSH के लॉग को बढ़ाएं 'LogLevel को DEBUGदेखें और देखें कि क्या आप लॉग किए गए किसी भी मुद्दे को देख सकते हैं, अगर यह अभी भी आपको एक्सेस नहीं दिखाता है तो आप गलत लॉग फ़ाइल में देख रहे हैं
Noam Rathaus

जवाबों:


61

ठीक है, मेरी कुंजी में एक छोटा टाइपो था। जाहिरा तौर पर जब पहला पत्र दाखिल करने के लिए चिपकाया गया, तो इसे ssh-rsa के बजाय sh-rsa से शुरू किया गया।

nrathathaus - आपका उत्तर बहुत मददगार था, बहुत बहुत धन्यवाद, इस उत्तर का श्रेय आपको दिया जाता है :) मैंने आपको पसंद किया और sshd_conf में इसे सेट किया:

LogLevel DEBUG3

लॉग देखकर मैंने महसूस किया कि sshd कुंजी को सही ढंग से पढ़ता है लेकिन गलत पहचानकर्ता के कारण इसे अस्वीकार कर देता है।


7
सटीक एक ही मुद्दा :)
ट्रेफेक्स

आपने कौन से लॉग की जाँच की और वे कहाँ हैं? पहचानकर्ता क्या है, आप किस बारे में बात कर रहे हैं?
user1046647

3
@ user1046647 LogLevelमें परिभाषित किया गया है /etc/ssh/sshd_config। डिफ़ॉल्ट लॉग /var/log/auth.logतब तक है जब तक कि अन्यथा में परिभाषित न किया गया हो sshd_config
एक्सल केम्पर

3
यदि आप vim में अधिकृत_की खोलते हैं और तुरंत 'ssh_rsa' से पहला 's' चिपकाने की कोशिश करते हैं, तो vim कमांड के रूप में व्यवहार किया जाता है, जिसके बाद vim इन्सर्ट मोड में स्विच हो जाएगा और शेष टेक्स्ट पेस्ट किया जा रहा है। यदि आप डालने से पहले मोड डालें। चिपकाने (जैसे का उपयोग करते हुए i) प्रमुख 's' में कटौती नहीं की जाएगी।
पावेल

1
! sudo service ssh restartपरिवर्तन प्रभावी होने के लिए। वरना मेरी ओर से लॉग-फाइल में कुछ भी नहीं था।
होगन

30

कुछ विचारों को जोड़ने के रूप में अन्य उत्तरों ने मदद की, लेकिन सटीक रूप से फिट नहीं थे।

सबसे पहले, जैसा कि स्वीकृत उत्तर में बताया गया है, संपादित करें

/etc/ssh/sshd_config

और लॉग स्तर सेट करें:

LogLevel DEBUG3

फिर प्रमाणित करने का प्रयास करें, और जब यह विफल हो जाए, तो लॉग फ़ाइल देखें:

/var/log/secure

इसमें वे त्रुटियां होंगी जिनकी आप तलाश कर रहे हैं।


/var/log/मौजूद है, लेकिन secureमौजूद नहीं है। मुझे कैसे पता चलेगा कि किस लॉग को लिखा जा रहा है?
aliteralmind

11
डिफ़ॉल्ट रूप से /var/log/auth.log, मेरे Ubuntu 14.04.1 में कम से कम है।
एक्सल केम्पर

हाँ! धन्यवाद! पता चलता है कि मेरी पब की फ़ाइल में अंत में एक अदृश्य \ n था
एलेक्सिसिल

1
लिनक्स / उबंटू इतना निराशाजनक है। secureयहाँ पर @axel टिप्पणियों को पढ़ने से पहले कोई फ़ाइल क्यों नहीं थी, यह जानने की कोशिश करते हुए एक अच्छा 20 मिनट बिताया ।
जेल्टन

17

मेरे मामले में मुझे 0755 से 0700 तक / घर / उपयोगकर्ता की अनुमति बदलनी पड़ी।


1
यह मेरे लिए कारण और समाधान था
pstanton

4
और खुद के लिए फ़ोल्डर 700 और
अधिकृत_कील्स

1
मेरे लिए वही, chmod 700 पर .shsh फोल्डर और chmod 600 on अधिकृत_keys ने इस समस्या को हल किया
Iwo Kucharski

.Ssh फ़ोल्डर 700 और अधिकृत कुंजी 600 ने इसे मेरे लिए तय किया।
दीप-बी

13

मेरे मामले में, एक अनुमति समस्या है।

मैंने लॉग स्तर को बदल दिया है DEBUG3, और /var/log/secureमैं इस पंक्ति को देखता हूं:

Authentication refused: bad ownership or modes for directory

गुगली हुई और मुझे यह पद मिला:

https://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/

chmod g-w /home/your_user
chmod 700 /home/your_user/.ssh
chmod 600 /home/your_user/.ssh/authorized_keys

असल में, यह मुझे बताता है:

  • wअपने उपयोगकर्ता होम डिर के समूह की अनुमति से छुटकारा पाएं
  • करने के लिए परिवर्तन की अनुमति 700के .sshdir
  • फ़ाइल 600की अनुमति बदलें authorized_keys

और वह काम करता है।

एक और बात यह है कि यहां तक ​​कि मैंने रूट लॉगिन को सक्षम किया है, मुझे rootकाम नहीं मिल सकता है । बेहतर है किसी अन्य उपयोगकर्ता का उपयोग करें।


इस जवाब पर मतदान हुआ। होम निर्देशिका की अनदेखी अनुमतियाँ आपको समस्या निवारण के लिए पूरे दिन का समय दे सकती हैं।
चिंगनोटिंग

मेरे लिए मतदान करने के लिए धन्यवाद। मुझे बस वही मिला जो मुझे मिला था।
वेस्टर्नगंज

6

विंडोज 8.1 चलाना मैं server refused our keyसमस्या में चला गया ।

गाइड के बाद: https://winscp.net/eng/docs/guide_windows_openssh_server विंडोज लॉगिन का उपयोग करके कनेक्शन बनाना आसान था usernameऔर password। हालांकि, usernameए के साथ संयोजन में प्रमाणीकरण private key, प्रतिक्रिया थी server refused our key

सार्वजनिक कुंजी के साथ काम करने के लिए इसे फ़ाइल पर अनुमतियों के लिए नीचे लाया गया: C:\ProgramData\ssh\administrators_authorized_keys

यह एक उपयोगी पृष्ठ है: https://github.com/PowerShell/Win32-OpenSSH/wiki/Troublesourcing-Steps

दो ओपनएसएसएच सेवाओं को बंद करें, फिर एक के command promptसाथ खोलें admin permissions। फिर भागो: C:\OpenSSH-Win32>c:\OpenSSH-Win32\sshd.exe -ddd

नोट: exe के लिए पूर्ण पथ निर्दिष्ट करें अन्यथा sshdशिकायत करता है। यह एक समय उपयोग कनेक्शन श्रोता बनाता है। -ddd3 स्तर वर्बोज़ है।

एक कनेक्शन बनाने के बाद, लॉग को स्कैन करने से पता चला:

debug1: trying public key file __PROGRAMDATA__/ssh/administrators_authorized_keys
debug3: Failed to open file:C:/ProgramData/ssh/administrators_authorized_keys error:2
debug1: Could not open authorized keys '__PROGRAMDATA__/ssh/administrators_authorized_keys':
        No such file or directory

फ़ाइल बनाना था: C:\ProgramData\ssh\administrators_authorized_keys और public keyउसमें पाठ को कॉपी करें , जैसे: ssh-rsa AAAA................MmpfXUCj rsa-key-20190505 और फिर फ़ाइल को सहेजें। मैं के रूप में फाइल सेव UTF-8साथ BOM। परीक्षण नहीं किया ANSI

फिर लॉग में दिखाया गया है, एक बार कमांड लाइन फिर से चल रहा है:

debug1: trying public key file __PROGRAMDATA__/ssh/administrators_authorized_keys
debug3: Bad permissions. Try removing permissions for user: S-1-5-11 on file C:/ProgramData/ssh/administrators_authorized_keys.
        Authentication refused.

S-1-5-11नाम दिया गया है System

फ़ाइल को ठीक करने के लिए Bad permissions, administrators_authorized_keysफ़ाइल पर राइट क्लिक Security Tabकरें, Advancedबटन पर क्लिक करें और विरासत में मिली अनुमतियों को हटा दें। फिर Group or user names:Windows लॉगिन उपयोगकर्ता नाम को छोड़कर सभी को हटा दें , जैसे: YourMachineName\username इसके लिए अनुमति usernameहोनी चाहिए Read Allow, Write Denyबाकी सब अनियंत्रित है। फ़ाइल का मालिक भी होना चाहिएYourMachineName\username

इससे समस्या ठीक हो गई।

अन्य उपयोगी लिंक:

OpenSSH-Win32.zip डाउनलोड करें : https://github.com/PowerShell/Win32-OpenSSH-releases

OpenSSH सर्वर से संबंध बनाने के लिए WinSCPnet.dll का उपयोग करने का C # उदाहरण: https://winscp.net/eng/docs/library#csharp

यहाँ कोड स्निपेट का उपयोग करके कनेक्शन बनाने के लिए है WinSCPnet.dll:

static void WinSCPTest() {
    SessionOptions ops = new SessionOptions {
        Protocol = Protocol.Sftp, 
        PortNumber = 22,
        HostName = "192.168.1.188", 
        UserName = "user123",
        //Password = "Password1",
        SshHostKeyFingerprint = @"ssh-rsa 2048 qu0f........................ddowUUXA="
    };

    ops.SshPrivateKeyPath = @"C:\temp\rsa-key-20190505.ppk";

    using (Session session = new Session()) {
        session.Open(ops);
        MessageBox.Show("success");
    }
}

बदलें SshHostKeyFingerprintऔर SshPrivateKeyPathअपने स्वयं के मूल्यों के साथ।

संपादित करें: प्रशासकों का जोड़ा स्क्रीनशॉट_अधिकृत_की फ़ाइल अनुमतियाँ: यहाँ छवि विवरण दर्ज करें

जब OpenSSH SSH Serverसेवा के रूप में चल रहा है, तो केवल Systemअनुमति होनी चाहिए। हालांकि, यदि sshd.exeकमांड प्रॉम्प्ट से चल रहा है, तो वर्तमान उपयोगकर्ता को केवल एक सूचीबद्ध होना चाहिए (पढ़ने की अनुमति, इनकार लिखें)।


3
आपने यहां कई काम किए हैं जिनसे मदद मिली। कमांड लाइन पर डिबग फ्लैग के साथ पहला रनिंग sshd। विंडोज सर्विस सिस्टम लॉग बहुत कम दिखाया गया था और डिबग करने के लिए पूरी तरह से बेकार था। दूसरा, मुख्य तथ्य यह है कि एक प्रशासक के रूप में एक बग है जो केवल एडमिनिस्ट्रेटर_अधिकृत_की फ़ाइल में दिखता है, न कि अपेक्षित उपयोक्ताओं के लिए। अधिकृत फ़ोल्डर के लिए .shsh फ़ोल्डर (विंडोज़ पर हर कोई दुःख से चलने वाला बिंदु sshd)। आखिरकार ProgramData में 'ssh' फोल्डर! मैं सोच रहा था कि यह सर्वर केट आदि कहाँ लगा रहा है। इसलिए यहाँ केवल आपकी जानकारी ने एक-एक दिन के लिए मेरे सिर को खरोंचने के बाद मेरी मदद की। धन्यवाद!
मास्टर जेम्स

यह उत्तर केवल वही था जो मेरे लिए एक ताजा ec2 उदाहरण विंडोज 2019 फ्री टियर पर काम करता था।
योलोब २१

3

मैं इस जवाब को किसी की भी मदद करने के लिए जोड़ रहा हूं, मेरी तरह, जिसने सफलता के बिना इंटरनेट को बर्बाद करने में घंटों बिताए।

आपका होम फोल्डर सही तरीके से लिखा जा सकता है।

या उस मामले के लिए कोई भी फ़ोल्डर जिसमें आपकी "अधिकृत_की" फाइल नस्टेड है। यार, इससे मेरा बहुत समय बच जाता। जांच करने के लिए, प्रदर्शन करें

ls -A

वह निर्देशिका जिसकी एन्क्रिप्शन स्थिति आप निर्धारित करना चाहते हैं। यदि फ़ोल्डर में ".encryptfs" नाम का फ़ोल्डर है, तो इसका उत्तर हां है, उस फ़ोल्डर को एन्क्रिप्ट किया गया है। यह "अधिकृत_की" फ़ाइल तक पहुँचने की आपकी क्षमता को बाधित करेगा जिसमें सत्यापन के लिए आवश्यक सार्वजनिक ssh कुंजी होगी।

इसे ठीक करने के लिए, "अधिकृत_की" फ़ाइल को निर्देशिका ट्री में रखें जिसमें कोई एन्क्रिप्शन न हो।


3

मैंने पाया सरल समाधान authorized_keysफ़ाइल को छिपी हुई .shsh निर्देशिका से दूर ले जाना और इसे सिस्टम ssh निर्देशिका में रखना था:

/etc/ssh/keys/authorized_keys

जैसे ही मैंने ऐसा किया, इसने बिना किसी समस्या के काम किया।


3

Windows Server 2008 r2 में एक ही समस्या होने और हल करने के लिए बहुत कुछ पता लगाया, अंत में निम्नलिखित द्वारा किया:

खुले C: \ Program Files (x86) \ OpenSSH \ etc \ sshd_config टेक्स्टपैड या किसी अन्य पाठ संपादक के साथ

निम्नलिखित लाइनों से टिप्पणी को हटा दें, हटाने के बाद उन्हें निम्नलिखित की तरह दिखना चाहिए:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

इसे सहेजें और अब निजी कुंजी से लॉगिन करने का प्रयास करें। मज़े करो।


ssh को कभी-कभी w / स्थापित किया जाता है। प्राधिकृत कुंजी पंक्ति में टिप्पणी की जाती है, इसलिए यह नहीं पता होता है कि अधिकृत कुंजियाँ फ़ाइल के लिए कहाँ देखें :-(
kenyee

अधिकृत_की फ़ाइल के लिए किन अनुमतियों की आवश्यकता है? और क्या यह उपयोगकर्ता की निर्देशिका में या ओपनएसएसएच की निर्देशिका में होना चाहिए?
गारफील्डकॉन

यह OpenSSH निर्देशिका पर होना चाहिए या जहाँ आपने अपना OpenSSH स्थापित किया है। आपको इसे खोजने में सक्षम होना चाहिए
रवि आनंद

सुनिश्चित करें, आप इसे व्यवस्थापक खाते का उपयोग करके सेट कर रहे हैं।
रवि आनंद

2

Nrathaus के लिए धन्यवाद और /var/log/auth.logडिबग स्तर पर जांच के बाद निम्नलिखित आता है।

दूसरा कारण यह है कि आपके होम डायरेक्टरी में 755 से अधिक की अनुमति हो सकती है।


आपकी होम डायरेक्टरी 700 होनी चाहिए, जो सेंटोस पर डिफ़ॉल्ट है।
कराटेग

2

मुझे आज इस समस्या का सामना करना पड़ा और मेरा मुद्दा यह था कि फ़ाइल से सार्वजनिक कुंजी की प्रतिलिपि बनाते समय, नई पंक्ति वर्णों को भी शामिल किया जाता है। आप सभी छिपी हुई नई लाइनों को देखने के लिए "सेट सूची" का उपयोग कर सकते हैं और पिछले एक को छोड़कर सभी नई लाइनों को हटाना सुनिश्चित कर सकते हैं। इसके अलावा, मेरी कुंजी शुरुआत में "ssh-rsa" याद कर रही थी। सुनिश्चित करें कि आपके पास भी है।


1
यहां भी ऐसा ही है: जब पुट्टीगैन से नकल करते हैं, तो मेरे पास "ssh-rsa" और कुंजी के बाद नई लाइनें थीं। उन्हें हटाने के बाद इसने काम किया।
लुसियन पी।

1

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


1

मेरे मामले में, मुझे इसे काम करने के लिए Centos6.6 पर SELinux को निष्क्रिय करना पड़ा :)

संपादित करें / etc / selinux / config और निम्नलिखित सेट करें और फिर मेजबान को रिबूट करें।

selinux=disabled

BTW ... यह उल्लेख करना भूल गया कि मुझे समस्या की पहचान करने के लिए LogLevel = DEBUG3 सेट करना था।


1
SELinux को अक्षम करने के बजाय आप .ssh फ़ोल्डर पर सुरक्षा संदर्भ को बदल सकते हैं। chcon -R -t ssh_home_t .ssh
palehorse

1

मुझे सोलारिस पर एक ही त्रुटि थी लेकिन /var/adm/splunk-auth.log में निम्नलिखित पाया गया:

sshd: [auth.debug] debug1: PAM conv function returns PAM_SUCCESS
sshd: [auth.notice] Excessive (3) login failures for weblogic: locking account.
sshd: [auth.debug] ldap pam_sm_authenticate(sshd-kbdint weblogic), flags = 1
sshd: [auth.info] Keyboard-interactive (PAM) userauth failed[9] while authenticating: Authentication failed

में / आदि / छाया खाता बंद था:

weblogic:*LK*UP:16447::::::3

"* LK *" भाग निकाला:

weblogic:UP:16447::::::3

और मैं हमेशा की तरह अधिकृत_के साथ ssh का उपयोग कर सकता हूं।


1

मेरे मामले में यह ( /etc/ssh/sshd_config):

PermitRootLogin no

में बदल गया yes, सेवा को फिर से शुरू किया और सामान्य रूप से मिला।


1

मैंने इस समस्या को हल कर दिया है, पुट्टीजेन एक थर्ड-पार्टी सॉफ्टवेयर है, ssh की जो इसे जनरेट करता है उसे सीधे इस्तेमाल नहीं किया जाता है, इसलिए आपको कुछ बदलाव करने होंगे। उदाहरण के लिए, यह इस तरह दिखता है

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170502"
AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7
*******C4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ==
---- END SSH2 PUBLIC KEY ---- 

मैं बीच के कुछ अक्षरों को छोड़ देता हूं, * द्वारा प्रतिस्थापित, यदि नहीं, तो StackOverflow ने मुझे बताया कि कोड प्रारूप गलत है, मुझे पोस्ट न करने दें the

यह मेरी ssh कुंजी है जो कि पोटीनजेन द्वारा बनाई गई है, आपको इसे बदलना होगा

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7wfvKGWWR7wxA8GEXJsM01FQw5hYWbNF0CDI7nCMXDUEDOzO1xKtNoaidlLA0qGl67bHaF5t+0mE+dZBGqK7jG9L8/KU/b66/tuZnqFqBjLkT+lS8MDo1okJOScuLSilk9oT5ZiqxsD24sdEcUE62S8Qwu7roVEAWU3hHNpnMK+1szlPBCVpbjcQTdiv1MjsOHJXY2PWx6DAIBii+/N+IdGzoFdhq+Yo/RGWdr1Zw/LSwqKDq1SmrpToW9uWVdAxeC4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ== yourname@hostname

मेरे मामले में, मैंने कुछ टिप्पणियां हटा दी हैं, जैसे कि

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170502"
---- END SSH2 PUBLIC KEY ----

और ssh-rsaशुरुआत में जोड़ें yourname@hostname, आखिरी में जोड़ें । नोट : ==आखिरी में डिलीट नहीं किया गया है और आपको आपके लिए "अपना नाम" और "होस्टनाम" बदलना होगा। मेरे मामले में, यह uaskh@mycomputerहै कि, आपका नाम है कि आप अपने vps में लॉग इन करना चाहते हैं। जब ये सभी चीजें हो गई हैं, तो आप सार्वजनिक रूप से अपलोड कर सकते हैं। -तब तक उस्क के घर ~/.ssh/authorized_keysपर cat public-key >> ~/.ssh/authorized_keysतब sudo chmod 700 ~/.ssh sudo chmod 600 ~/.ssh/authorized_keysतक आपको संशोधित करना होगा / etc / ssh / sshd_config, RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keysमेरा ऑपरेटिंग सिस्टम CentOS 7 है, यह मेरे लिए पहली बार anwser सवाल है, मैं अपने प्रयासों को करने की कोशिश करूँगा, धन्यवाद!


1
@ रोनक भट्ट, मेरे लिए प्रयासों का धन्यवाद, मैंने कोड क्लियर करने की कोशिश की, इस सभी कोड के लिए मैंने ctrl + K का उपयोग किया, लेकिन StackOverflow ने मुझसे कहा "आपकी उत्तर अपील में कोड हैं, कृपया सही प्रारूप का उपयोग करें", और मैंने ऐसा क्यों नहीं किया यह लिखित और प्रस्तुत के बीच अलग है, मैं अपना जवाब प्रस्तुत नहीं कर सकता, जिसके कारण मुझे लाइन द्वारा 'कोड' लाइन में कोड जोड़ना पड़ता है। मैं मार्कडाउन प्रारूप सीखूंगा, सोचता हूं।
परमाणु

वर्तमान संस्करण में पुट्टीजेन कॉपी और पेस्ट के लिए सार्वजनिक प्रारूप को सही प्रारूप में दिखाएगा। तो पोटीन पब कुंजी को मैन्युअल रूप से सही प्रारूप में बदलने के लिए अब और कोई आवश्यकता नहीं है।
एरिक कल्लोकेन

1

ओह माय गॉड मैंने इसे ठीक करने के लिए दिन बिताए। इसलिए यहां मेरे लिए काम किया गया है। मैं इस तरह से रूट फोल्ड में वापस गया: cd / root / mkdir .ssh cd .sshmmod 700 .ssh nano -w अधिकृत_keys सर्विस ssh पुनरारंभ इसलिए मैंने रूट को पुट्टी के माध्यम से लॉगिंग करने के लिए उपयोग किया और यह काम किया। इसलिए जिस यूज़र को आप पोटीन में इस्तेमाल करना चाहते हैं, उसके साथ भी ऐसा ही करने की कोशिश करें।


0

मैं psftp के साथ एक PUTTYgen फ़ाइल का उपयोग कर रहा हूं, और मुझे अपने विंडोज सर्वर पर इस समस्या का सामना करना पड़ा जब हमें क्लाइंट के लिए नई कुंजी बनाने की आवश्यकता थी। Private_key_name .ppk फ़ाइल और open_ssh.txt फ़ाइल काम करने के लिए कनेक्शन के लिए एक ही निर्देशिका में होना चाहिए।


0

मेरे मामले में nfs पर घर 777 था, 750 होने की आवश्यकता थी। इस मुद्दे को तय किया।


0

मेरे पास यह मुद्दा है जहां sshd केवल से पढ़ता है authorized_keys2

फ़ाइल की प्रतिलिपि बनाना या उसका नाम बदलना मेरे लिए समस्या निर्धारित करता है।

cd  ~/.ssh
sudo cat authorized_keys >> authorized_keys2

पी एस मैं विंडोज से पुट्टी का उपयोग कर रहा हूं और कुंजी जोड़ी पीढ़ी के लिए पुट्टीकेयेन का उपयोग किया है।


0

जब मैं Mobaxterm के माध्यम से लॉगऑन करने की कोशिश कर रहा था तो मैं इसी तरह के मुद्दे का सामना कर रहा था। निजी कुंजी पुट्टीजेन के माध्यम से उत्पन्न हुई थी। मेरे मामले में कुंजी को पुनर्जीवित करने से मदद मिली।


0

Cpanel का उपयोग करते समय आप जांच सकते हैं कि क्या कुंजी अधिकृत है

SSH पहुँच >> सार्वजनिक कुंजी >> प्रबंधित करें >> अधिकृत या Deauthorize।


0

यदि आपको यह त्रुटि मिलती है /var/log/secure

त्रुटि: key_read: key_from_blob AA
AAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG + rKz93l7em1BsubbjHPMsswD

इसका मतलब है कि आपकी कुंजी में जगह है, अगर आपने .ppkफ़ाइल को देखने पर पुटजेन के माध्यम से कुंजी उत्पन्न की है, तो यह इस तरह दिखेगा:

AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswD
al74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5
GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBC
gLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqz
xjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5L
VwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ==

और जब आप इसे पेस्ट करने का प्रयास करेंगे तो आपको कुंजी पढ़ने में त्रुटि होगी, इसलिए कुंजी को संपादित करने और इसे एक पंक्ति बनाने और इसे आज़माने का प्रयास करें

यह कुछ इस तरह दिखना चाहिए

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswDal74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBCgLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqzxjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5LVwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ== username@domainname


0

मेरे लिए क्या काम करता है:

  • Ec2 उदाहरण को रोक दिया
  • मात्रा अलग करें
  • एक ही कुंजी का उपयोग करके पुराने उदाहरण के साथ वॉल्यूम संलग्न करें और SSH करने में सक्षम था
  • कुछ अस्थायी फ़ोल्डर में वॉल्यूम माउंट करें
  • निर्देशिका Mount_point / home / ec2-user / .ssh / अधिकृत_keys में फ़ाइल की जाँच की
    • आदर्श रूप से, इस फ़ाइल में हमारी महत्वपूर्ण जानकारी होनी चाहिए लेकिन मेरे लिए यह फ़ाइल खाली थी
  • पुराने उदाहरण अधिकृत_की फ़ाइल को नए माउंट किए गए वॉल्यूम में कॉपी किया
  • डिवाइस को अनमाउंट करें
  • मूल ec2 उदाहरण के लिए reattach
  • इसे शुरू करें और इसे स्वास्थ्य जांच से गुजरने दें

यह समय मेरे लिए काम करता है। लेकिन मुझे नहीं पता कि यह पहली बार मेरी महत्वपूर्ण फ़ाइल जानकारी क्यों नहीं है जब उदाहरण लॉन्च किया गया था। इस लिंक को भी चेक करें https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Troubles हीलिंगInstancesConnecting.html# TroublesourcingInstancesConnectingMindTerm


0

मेरे मामले में समस्या इस तरह थी, ssh कुंजियों की पीढ़ी के दौरान मैंने जानबूझकर कुंजियों की डिफ़ॉल्ट निर्देशिकाओं को बदल दिया। इसलिए मैंने स्थान का उपयोग करने के बजाय ~ / .ssh / अधिकृत_की का उपयोग करने के लिए चुना ~/home/user/folder1/.ssh/authorized_keys, इन परिवर्तनों के लिए काम करने के लिए मैं इस फ़ाइल पर नए स्थान के बारे में समान परिवर्तन करने वाला था /etc/ssh/sshd_config। लेकिन जब तक मुझे यह एहसास हो रहा है कि मैंने पहले से ही यहां अन्य लोगों द्वारा सुझाए गए कई समाधानों की कोशिश की थी जिनमें होम फोल्डर की अनुमति 700और .sc निर्देशिका को स्थापित करना शामिल था 600


0

रूट माउंट को ठीक करने के लिए कदम (जो मैंने ec2-user फ़ोल्डर और प्राधिकरण कुंजी फ़ाइल के साथ अनुमति बदल दी है) यह प्रक्रिया एक पेन-ड्राइव को अलग करने और संलग्न करने के समान होगी।

नीचे कुछ अन्य परिदृश्य हैं जिनका आप सामना कर सकते हैं -

  1. आप SSH निजी कुंजी का उपयोग कर रहे हैं, लेकिन संबंधित सार्वजनिक कुंजी अधिकृत_की फ़ाइल में नहीं है।
  2. आपके पास अपनी अधिकृत_की फ़ाइल के लिए अनुमति नहीं है।
  3. आपके पास .ssh फ़ोल्डर के लिए अनुमतियां नहीं हैं।
  4. आपकी अधिकृत_की फ़ाइल या .ssh फ़ोल्डर का नाम सही नहीं है।
  5. आपकी अधिकृत_की फ़ाइल या .shsh फ़ोल्डर हटा दिया गया था।

उन्हें ठीक करने के लिए कदम

  • समस्याग्रस्त Ec2 उदाहरण को रोकें
  • रूट वॉल्यूम (/ dev / sda1) को अलग करें
  • एक ec2 उदाहरण बनाएं या एक रनिंग का उपयोग करें
  • अलग किए गए वॉल्यूम (/ dev / sdvf) को नए ec2 उदाहरण में माउंट करें

अब आप नए ec2 रन चरणों के नीचे लॉगिन करने के बाद

  • Lsblk कमांड - सभी उपलब्ध माउंटों को सूचीबद्ध करें
  • उस माउंट मान को चुनें जिसे आप समस्याग्रस्त उदाहरण से अनमाउंट करते हैं
  • Ec2- उपयोगकर्ता के रूप में "sudo Mount / dev / mapper / rootvg-home / mnt" चलाएं sudo mount /dev/mapper/rootvg-home /mnt
  • फिर निर्देशिका को / mnt में बदलें
  • सभी आवश्यक परिवर्तन करें

अब हमने अपना वॉल्यूम उस मुद्दे के साथ तय किया है, जिसका हमने सामना किया था। अधिकतर यह उपयोगकर्ता की अनुमति का मुद्दा हो सकता है - उम्माउंट / mnt इसे अनमाउंट करने के लिए - अब कंसोल पर जाएं और नए इंस्टेंस से जुड़ी वॉल्यूम को इंगित करें और इसे अलग करें - अलग होने के बाद, इसे अपने नए वॉल्यूम के साथ / dev / sda1 के रूप में संलग्न करें

इसके साथ ही कहा गया है कि आपको सफलतापूर्वक लॉगिन करने में सक्षम होना चाहिए


0

मेरे अनुभव के रूप में, मेरा सुझाव है कि आपको पोटीन से चाबियां उत्पन्न करनी चाहिए, लिनक्स की तरफ से उत्पन्न नहीं होनी चाहिए। क्योंकि कुंजी पुराने पीईएम प्रारूप होगी। वैसे भी, बस मेरा सुझाव है। मैंने नीचे के चरणों के रूप में और मेरे और मेरी टीम के साथ ठीक काम किया।

  1. अपने स्थानीय पर PuTTYGen.exe के साथ एक प्रमुख जोड़ी बनाएं (प्रकार: आरएसए, लंबाई: 2048 बिट्स)।

  2. अपने स्थानीय पर " id_rsa.ppk / id_rsa.pub " फ़ाइलों के रूप में निजी / सार्वजनिक कुंजी सहेजें ।

  3. अपने स्थानीय पर "authorized_keys" फ़ाइल बनाएं, फिर "सार्वजनिक कुंजी दर्ज id_rsa.pub " को " authorized_keys "। याद रखें सामग्री को " ssh-rsa " और केवल एक पंक्ति से शुरू करना है ।

यहाँ छवि विवरण दर्ज करें

  1. WinScp (या पोटीन कमांड) का उपयोग अपने स्थानीय से अपने linux-user-home "/home/ FOUSER/.ssh/ " के लिए " अधिकृत_कीप और id_rsa.pub " को कॉपी करने के लिए करें ।

यहाँ छवि विवरण दर्ज करें

  1. ये आदेश चलाएँ:

    chmod 700 .ssh

    chmod 600। ssh / अधिकृत_की

    $ USER chown: US USER .ssh -R

  2. PuTTY.exe प्रोफ़ाइल में निजी कुंजी " id_rsa.ppk " लोड करके अपनी कनेक्ट सेटिंग का परीक्षण करें , फिर खोलें पर क्लिक करें (यदि आपका पासफ़्रेज़ रखा है)।

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


0

अपनी कुंजी की जांच करें, यह आज एक rsa (id_rsa.pub) कुंजी होनी चाहिए और अब dss (id_dsa.pub) कुंजी नहीं होनी चाहिए, पुट्टीजेन 0.70 का उपयोग करें और RSA को चुनने के लिए कुंजी का प्रकार चुनें, मेजबान पर सार्वजनिक कुंजी को बदलें ~ /। ssh / authorized_keys


0

कुंजी जोड़ने के बाद, लॉगिन करें जैसे ec2-userकि आप अमेज़ॅन लिनक्स मशीन का उपयोग कर रहे हैं


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