* उपयोगकर्ता नाम * के लिए बहुत अधिक प्रमाणीकरण विफलताओं


255

मेरे पास एक होस्टगेटर खाता है जिसमें ssh एक्सेस सक्षम है। इस आदेश के साथ उत्पन्न। Pub कुंजी फ़ाइल को अपलोड करने का प्रयास करते समय:

rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub username@111.222.33.44:.ssh/authorized_keys

मैं मिलता रहा:

111.222.33.44: 2 से डिस्कनेक्ट किया गया: 2: उपयोगकर्ता नाम के लिए बहुत अधिक प्रमाणीकरण विफलताएं
rsync: कनेक्शन अनपेक्षित रूप से बंद (0 बाइट्स अब तक प्राप्त) [प्रेषक]
rsync त्रुटि: io.c पर अस्पष्टीकृत त्रुटि (कोड 255) (601) [प्रेषक = 3.0.7]

मैं ssh के साथ पहले से आसपास रहा हूँ जब तक कि मुझे असफलता नहीं मिली। लेकिन अब ऐसा लगता है कि सामान्य विफलता काउंटर रीसेट नहीं किया गया है (अब 12 घंटे से अधिक प्रतीक्षा की जा रही है, तकनीकी सहायता "सपोस" "30 मिनट से 1 घंटे के बाद रीसेट करती है, और दूसरे व्यक्ति ने मुझसे कहा" यह हर बार जब आप लॉगिन करने की कोशिश करते हैं तो रीसेट करता है उपयोगकर्ता नाम ", jeesh)।

यह मुझे पागल कर देता है। मैं भी एक स्लाइसहोस्ट कस्टम सर्वर में स्थापित किया था और इन लोगों के साथ तुलना में कम मुद्दों था।

कोई सुझाव? शायद यह कुछ क्लाइंट साइड है और सर्वर साइड नहीं है।


मेरे मामले में कुंजी बनाने में गलती हुई। मैंने एक कुंजी तैयार की और मैं स्रोत के पते का उल्लेख करने से चूक गया और कुंजी के अंत में उपयोगकर्ता नाम का उपयोग किया।
रिपोर्टर

जवाबों:


415

यह आमतौर पर अनजाने में सर्वर के लिए कई ssh कुंजियाँ देने के कारण होता है । बहुत से कुंजियों की पेशकश के बाद सर्वर किसी भी कुंजी को अस्वीकार कर देगा।

वर्बोज़ आउटपुट प्राप्त करने के लिए -vध्वज को अपने sshकमांड में जोड़कर आप इसे अपने लिए देख सकते हैं । आप देखेंगे कि जब तक सर्वर यह कहते हुए कनेक्शन को खारिज नहीं कर देता है, तब तक कुंजियों का एक गुच्छा पेश किया जाता है: "[उपयोगकर्ता] के लिए बहुत अधिक प्रमाणीकरण विफलताएं" । वर्बोज़ मोड के बिना, आपको केवल अस्पष्ट संदेश "पीयर द्वारा कनेक्शन रीसेट" दिखाई देगा

अप्रासंगिक कुंजियों को पेश किए जाने से रोकने के लिए, आपको स्पष्ट रूप से प्रत्येक होस्ट प्रविष्टि में इसे ~/.ssh/config(क्लाइंट मशीन पर) फ़ाइल को इस IdentitiesOnlyतरह से जोड़कर स्पष्ट रूप से निर्दिष्ट करना होगा :

Host www.somehost.com
  IdentityFile ~/.ssh/key_for_somehost_rsa
  IdentitiesOnly yes
  Port 22

यदि आप ssh-Agent का उपयोग करते हैं, तो यह ssh-add -Dपहचान मिटाने में मदद करता है ।

यदि आप किसी ssh होस्ट कॉन्फ़िगरेशन का उपयोग नहीं कर रहे हैं, तो आपको sshकमांड में सही कुंजी को स्पष्ट रूप से निर्दिष्ट करना होगा:

ssh -i some_id_rsa -o 'IdentitiesOnly yes' them@there:/path/

नोट: 'आइडेंटिटीऑनलाइन यस' पैरामीटर को कोट्स के बीच होना आवश्यक है।

या

ssh -i some_id_rsa -o IdentitiesOnly=yes them@there:/path/

5
यह मेरे लिए स्पष्ट नहीं है कि यह रेखा कहां रखी जाए। जिस सर्वर पर मैं .ssh / config में लॉग इन करने की कोशिश कर रहा हूं, उसके पास केवल अन्य सर्वरों की जानकारी है। क्या आपका मतलब है कि यह उस कंप्यूटर पर .ssh / config फाइल में जाना चाहिए, जिससे मैं ssh करना चाह रहा हूं? यदि ऐसा है, तो यह स्पष्ट नहीं है क्योंकि आपका उत्तर कहता है "एक बार जब आप लॉग इन हो जाते हैं ..."
डेविड लेउबर

2
मुझे विकल्प को दोहरे उद्धरण चिह्नों में रखना है, जैसे:ssh -i some_id_rsa -o "IdentitiesOnly yes" them@there:/path/
knb

1
PAGENT (पुट्टी एजेंट) चलाने वाले विंडोज उपयोगकर्ता, यह सुनिश्चित करने के लिए जांच लें कि आपके पास केवल वे कुंजी हैं जिन्हें आपको लोड करने की आवश्यकता है। मैं गलती से अपनी सभी निजी चाबियों को लोड करने के बाद इस मुद्दे पर भाग गया।
क्रिस रास्को

2
यह सवाल बना हुआ है: होस्ट के लिए नियम की स्पष्ट सेटिंग होने पर भी ssh"एकाधिक कुंजियाँ" (कुछ भी ~/.ssh) क्यों दी जाती हैं IdentityFile /path/to/private_key_file। क्या यह स्पष्ट रूप से निर्दिष्ट कुंजी (बहुत कम से कम) पहले पेश नहीं की जानी चाहिए? क्या यह उद्घोषक क्लाइंट में बग / मिसफिट नहीं है?
अरीफेल

2
लेकिन यह IdentityFileविकल्प के साथ निर्दिष्ट कुंजी का उपयोग नहीं करना चाहिए ? उदाहरण के लिए, IdentitiesOnlyविकल्प के बिना , यह मेरी githubकुंजी का उपयोग करने की कोशिश करता है जब मैं कोशिश करता हूं ssh gitlab.com। इसका कोई मतलब नही बनता।
इयूलियन ओनोफ्रेई

188

मुझे ऐसा करने का एक आसान तरीका मिला (यदि पासवर्ड प्रमाणीकरण का उपयोग करके):

ssh -o PubkeyAuthentication=no username@hostname.com

यह गैर-कुंजी प्रमाणीकरण को बाध्य करता है। मैं तुरंत लॉगऑन करने में सक्षम था।

संदर्भ


3
+1, काश मैं आपको अधिक दे पाता। रास्पबेरी पाई एकमात्र उपकरण है जिसे मैंने सार्वजनिक कुंजी के बिना ssh। मिल रहा था: "बहुत अधिक प्रमाणीकरण विफलताओं के लिए पाई"
blak3r

1
और इसके साथ उपयोग करने के लिए rsync:rsync -av -e 'ssh -o PubkeyAuthentication=no' 'user@host.com:~/remote_file' 'local_file'
Ciro Santilli 改造::: 事件

1
आप पासवर्ड ऑल्टर के लिए इसे और भी तेज बनाने के लिए एक उपनाम बना सकते हैं। उर्फ sshp = 'ssh -o PubkeyAuthentication = no'
dhempler

26

मुझे यह त्रुटि भी मिल रही थी और पाया कि यह बी / सी हो रहा था सर्वर को 6 प्रयासों तक स्वीकार करने के लिए कॉन्फ़िगर किया गया था:

/etc/ssh/sshd_config
...
...
#MaxAuthTries 6

IdentitiesOnly yesअपनी ~/.ssh/configफ़ाइल में सेट करने के अलावा आपके पास कुछ अन्य विकल्प हैं।

  1. MaxAuthTries(Ssh सर्वर पर) बढ़ाएँ
  2. अपनी ~/.ssh/निर्देशिका में मौजूद कुछ प्रमुख जोड़े हटाएं और चलाएंssh-add -D
  3. अपनी ~/.ssh/configफ़ाइल में दिए गए होस्ट की कुंजी को स्पष्ट रूप से लिंक करें

इस तरह:

host foo
hostname foo.example.com
IdentityFile /home/YOU/.ssh/foo
  1. शायद इसके बारे में जाने का एक अच्छा तरीका नहीं है, क्योंकि यह आपके ssh सर्वर को थोड़ा कमजोर कर देता है क्योंकि यह अब दिए गए कनेक्शन प्रयास में अधिक कुंजी स्वीकार करेगा। सोचो ब्रूट फोर्स यहाँ वैक्टर पर हमला करते हैं।

  2. यह मानने का एक अच्छा तरीका है कि आपके पास ऐसी चाबियां हैं जिनकी जरूरत नहीं है और जिन्हें स्थायी रूप से हटाया जा सकता है।

  3. और आइडेंटिटीली सेटिंग करने का तरीका शायद इस मुद्दे से निपटने का पसंदीदा तरीका है!


आपकी अंतिम पंक्ति में आपके पास Identfile /home/YOU/.ssh/foo है, लेकिन यह Identfile (एफ पर नहीं) होना चाहिए
Nin

7

मैंने इसे ~ / .ssh / config में जोड़ा:

Host *
IdentitiesOnly yes

यह विकल्प पहचान को सक्षम करता है = डिफ़ॉल्ट रूप से हां। यदि आपको निजी कुंजी से जुड़ने की आवश्यकता है, तो आपको इसे विकल्प -i के साथ निर्दिष्ट करना चाहिए


6

यदि आपको निम्न SSH त्रुटि मिलती है:

$ Received disconnect from host: 2: Too many authentication failures for root

यदि आपके पास (मेरे सिस्टम पर डिफ़ॉल्ट) पाँच या अधिक DSA / RSA पहचान फ़ाइलें आपके .ssh निर्देशिका में संग्रहीत हैं और यदि '-i' विकल्प कमांड लाइन पर निर्दिष्ट नहीं है, तो ऐसा हो सकता है।

Ssh क्लाइंट पहले प्रत्येक पहचान (निजी कुंजी) का उपयोग करके लॉगिन करने का प्रयास करेगा और पासवर्ड प्रमाणीकरण के लिए अगला संकेत देगा। हालांकि, sshd पांच खराब लॉगिन प्रयासों (फिर से डिफ़ॉल्ट भिन्न हो सकता है) के बाद कनेक्शन को छोड़ देता है।

यदि आपके पास अपनी .sh निर्देशिका में कई निजी कुंजियाँ हैं, तो आप '-ओ' वैकल्पिक तर्क का उपयोग करके कमांड लाइन पर "सार्वजनिक कुंजी प्रमाणीकरण" को अक्षम कर सकते हैं।

उदाहरण के लिए:

$ ssh -o PubkeyAuthentication=no root@host

यह वही था जो मेरे साथ हो रहा था! स्पष्टीकरण के लिए बहुत बहुत धन्यवाद;)
एल निंजा ट्रेपडोर 13

6

यदि आपके पास एक पासवर्ड है, और लॉगिन करने के लिए बस पासवर्ड का उपयोग करना चाहते हैं, तो यहां बताया गया है कि आप इसे कैसे करते हैं।

केवल पासवर्ड प्रमाणीकरण का उपयोग करने के लिए और सार्वजनिक कुंजी का उपयोग न करें, और कुछ भ्रामक "कीबोर्ड-इंटरैक्टिव" (जो पासवर्ड सहित सुपरसेट है) का उपयोग न करें, आप इसे कमांड लाइन से कर सकते हैं:

ssh -o PreferredAuthentications=password user@example.com

3

@David से यह कहते हुए, इसे IdentitiesOnly yes अपने .ssh / config में जोड़ें, यह वैसा ही काम करता हैssh -o PubkeyAuthentication=no.

लॉग इन करने के बाद, हटा दें .ssh/authorized_keys। अब, स्थानीय मशीन पर वापस जाएँ और निम्नलिखित टाइप करें

cat ~/.ssh/id_rsa.pub | ssh -o PubkeyAuthentication=no user@IP_ADDR 'cat >> .ssh/authorized_keys'। यह सार्वजनिक कुंजी के साथ आपके ssh को फिर से सक्षम करना चाहिए


2

मुझे पता है कि यह एक पुराना धागा है, लेकिन मैं बस यहां जोड़ना चाहता था कि मैं एक ही त्रुटि संदेश में भाग गया, लेकिन यह उपयोगकर्ता के बजाय .ssh फ़ोल्डर के मालिक के कारण था जो कुंजी का उपयोग कर रहा था। मैंने निम्न आदेशों को चलाकर समस्या को ठीक किया:

sudo chown -R user:user /home/user/.ssh

मैंने यह भी सुनिश्चित किया कि अनुमतियाँ .ssh फ़ोल्डर पर सही थीं:

sudo chmod 700 /home/user/.ssh

.Ssh निर्देशिका के भीतर फ़ाइलों को 600 की अनुमति होनी चाहिए:

sudo chmod 600 /home/user/.ssh/authorized_keys

मैं एक चेतावनी के बिना इसका उपयोग करने के साथ सावधान रहना होगा। SSH कुंजी अनुमतियाँ आमतौर पर कुछ कुंजियों के लिए 400 तक सीमित होती हैं, विशेष रूप से AWS। उन्हें ऊपर सेट करने का प्रयास करने के परिणामस्वरूप कुंजी को स्वीकार नहीं किया जाएगा, और यह आपको आपके एडब्ल्यूएस खाते से बाहर कर सकता है।
माइकल रयान सॉइल्यू ने

1

मेरे मामले में, समस्या निर्देशिका अनुमतियाँ थी। यह मेरे लिए यह तय:

$ chmod 750 ~;chmod 700 ~/.ssh

0

मेरे मामले में, यह इसलिए हो रहा था क्योंकि मैं "ubuntu" यूज़रनेम का उपयोग कर रहा था, लेकिन इस उदाहरण में उपयोगकर्ता नाम "पारिस्थितिक उपयोगकर्ता" था

जब मैंने "जॉन टी" का सुझाव दिया, उसके बाद मुझे यह त्रुटि मिली:

अनुमति से इनकार (publickey)।

तब मुझे इस उत्तर में हल मिला (यानी यूजरनेम बदलकर "ec2-user"): https://stackoverflow.com/questions/1454629/aws-ssh-access-permission-denied-publickey-issue


0

मेरे पास मेरी सार्वजनिक कुंजी थी .ssh/authorized_keys2, लेकिन सर्वर केवल पढ़ने के लिए कॉन्फ़िगर किया गया था .ssh/authorized_keys:

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys

अपनी फ़ाइल को यहां ले जाने के बाद .ssh/authorized_keys, मैं अपनी कुंजी के साथ सफलतापूर्वक लॉग इन कर सकता हूं।


0

बहुत सारे प्रमाणीकरण विफल हो जाते हैं

यह संदेश दूरस्थ SSH सर्वर पर लागू अनुमत सीमाओं को दिए गए बहुत से विफल प्रमाणीकरण प्रयासों के कारण होता है। इसका संभावित अर्थ है कि आप SSH एजेंट में बहुत अधिक पहचान जोड़ चुके हैं।

यहाँ कुछ सुझाव दिए गए हैं:

  • जोड़े -vयदि यह मामला (यदि आप बहुत अधिक पहचान का उपयोग किया है) है देखने के लिए।
  • द्वारा सूची में जोड़े गए पहचान ssh-add -l
  • एजेंट से विफल पहचान निकालें ssh-add -d:।
  • आप सभी पहचान को हटा सकते हैं ssh-add -Dऔर केवल प्रासंगिक एक को फिर से जोड़ सकते हैं।
  • यदि आप SSH सर्वर तक पहुँचते हैं, तो MaxAuthTriesविकल्प देखें (देखें :) man sshd_config

    संबंधित पोस्ट: 'एस' मैक्सहॉट्रीज़ की सीमा के लिए एक कनेक्शन क्या है sshd_config?

  • यदि इस मदद में से कोई भी नहीं, तो सुनिश्चित करें कि आप सही क्रेडेंशियल या फ़ाइल का उपयोग कर रहे हैं।


-1

सही उपयोगकर्ता नाम और पासवर्ड दर्ज नहीं होने पर यह संदेश दिखाई दे सकता है।

पहले जांचें कि उपयोगकर्ता सूचीबद्ध है:

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