“Kullanıcı kökü için çok fazla Kimlik Doğrulama Hatası” nasıl kurtarılır


64

Macun terminalini kullanarak kullanıcı kök @ ana bilgisayarı için SSH bağlantısı kurmak için birkaç girişimde bulundum. Bunu yaparken birkaç kez yanlış bilgiler verdim ve sonrasında bunları doğru bir şekilde belirledim ve ardından kimlik bilgileri kabul edildikten sonra ssh oturumu sona erdi

Msgstr "Sunucu beklenmedik şekilde kapalı ağ bağlantısı".

Bu hata macun terminali tarafından rapor edilir. Yerel konsoldan root @ localhost komutunu sınmaya çalışırken - iyi çalışıyor. Ben diğer kullanıcı @ host diğer host ssh ssh zaman da iyi çalışıyor. Yani ağ bağlantısı sorunları suçlu değil. Düşündüğüm tek hata: Macun farklı bir hata bildirmesine rağmen "Kullanıcı kökü için çok fazla Kimlik Doğrulama Hatası".

Soru şudur: Bu hata durumundan nasıl kurtulur ve tekrar macun giriş yapalım? Sshd'yi yeniden başlatmak yardımcı olmuyor gibi görünüyor



1
Hiç Too many Authentication Failuresgiriş yapmadan önce bir hatayla karşılaşırsanız ssh temsilcinizi (örneğin, Windows'taki yarışmacı) devre dışı bıraktığınızdan emin olun .
Mahn

Yanıtlar:


8

Ssh için root girişine izin verildiğinden emin misin?

Sshd_config dosyasını kontrol edin ve root girişine izin verildiğini doğrulayın. Ayar değişirse sshd'nin yeniden başlatılması gerekir.


120

"Kullanıcı kökü için çok fazla Kimlik Doğrulama Hatası ", SSH sunucunuzun MaxAuthTries sınırının aşıldığı anlamına gelir . Bu, istemcinizin /home/USER/.ssh/ içinde kayıtlı tüm olası anahtarlarla kimlik doğrulaması yapmaya çalıştığı şekilde gerçekleşir.

Bu durum şu yollarla çözülebilir:

  1. ssh -i / path / to / id_rsa root @ host
  2. Belirtin Host / IdentityFile içinde çift /home/USER/.ssh/config .
    • Host host
    • IdentityFile /home/USER/.ssh/id_rsa
    • Host host2
    • IdentityFile /home/USER/.ssh/id_rsa2
  3. SSH sunucusundaki MaxAuthTries değerini / etc / ssh / sshd_config dosyasında arttırın (önerilmez).

9
Bu gerçekten kabul edilen cevap olmalı!
Benjamin

4
Kabul edilen bir cevap olmak için, cevabın gerçekten söz konusu yazılım ile ilgili olması gerekir. =)
rakslice,

4
Limitin aşılmasının bir başka nedeni de ssh temsilciniz olabilir. ssh -vvdenenmekte olan iki anahtarın (ssh-agent tarafından sağlanan) çoklu sürümlerini gösterdi. Bunun nadiren yeniden başlatmamdan ve süresi dolmuş bazı anahtarların yerini almamdan kaynaklandığını; Görünüşe göre ssh-agent eski anahtarların üzerine yenileriyle yazmıyor. Ben ssh-agent'ı öldürdüm ve sorun çözüldü.
Mark,

Arttırmanın ne sakıncası var MaxAuthTries? Birçok saldırının birçok farklı anahtarı deneyerek gerçekleştirildiğinden şüpheliyim. Ayrıca eğer bir saldırgan bunu yapmak isterse, sadece sınırı her kapattıklarında bağlantıyı kapatıp yeni bir tane açabilirler. Zaten bir anahtarı zorla almayı başaramayacaklar.
kasperd

@Mark Teşekkürler! Yeniden başlatmak ssh-agent'ı benim için düzeltti!
winduptoy

90

Aşağıdaki SSH Hatasını alırsanız:

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

Bu, (sistemimde varsayılan) .sshdizinde kayıtlı beş veya daha fazla DSA / RSA kimlik dosyanız varsa olabilir . Bu durumda -iseçenek komut satırında belirtilmezse, ssh istemcisi önce her bir kimliği (özel anahtar) ve bir sonraki parola doğrulama istemini kullanarak giriş yapmayı dener. Ancak, sshd beş hatalı giriş denemesinden sonra bağlantıyı keser (yine varsayılan olarak değişebilir).

Bu nedenle, .ssh dizininizde çok sayıda özel anahtar varsa Public Key Authentication, -oisteğe bağlı argümanı kullanarak komut satırında devre dışı bırakabilirsiniz .

Örneğin:

$ ssh -o PubkeyAuthentication=no root@host

1
Çok teşekkür ederim! Burada sadece SSH ile erişebildiğim Ubuntu Sunucusunu kullanarak. İnternette bir öğretici körü körüne takip ettikten sonra "MaxAuthTries 1" ayarını yapmıştım.
Andre Figueiredo

Az önce hayatımı kurtardın! Anahtar auth kullanmayın, böylece diğer cevaplar yardımcı olmaz. Bu kolayca soooo çözdü!
George Green,

5
Bu cevap
smac89

Parola doğrulamasını kullanarak anahtarımı tekrar kopyaladım ve şimdi her seferinde işe yarıyor. Rehberimde pek çok anahtar .sshvar, önemli olan bu değil.
Ken Sharp,

Bu en alakalı cevap ve gerçekten de kimliğimi bir sunucuya kopyalamak istersem, ssh-copy-id için varsayılan davranış olmalıdır. Ancak ssh önce pubkey kullanarak sunucuya karşı kimlik doğrulaması yapmaya çalışırsa, sunucu şifreyi girmeden önce bağlantıyı keser.
Sprinterfreak

17

Uzak makinede / etc / sshd_config dosyasını açın ve değeri değiştirin

MaxAuthTries 30

Birden çok anahtar yüklediğinizde veya birden çok bağlantı açtığınızda bu tipik bir sorundur. Her anahtarın adım adım sunucu kontrolü ve eğer MaxAuthTries 3'e ayarlanmışsa ilk 3 denemeden sonra bağlantınız kesilecektir. Tipik ssh güvenliği.

Sorunu analiz etmek için uzak makineye bağlantı sırasında ayrıntılı modu kullanmanızı öneririm.

ssh -v -p port_number user @ sunucuadı

Bu forumdaki çoğu kişi gibi tahmin etmek, YANLIŞ ve zamanını boşa harcamaktır. İlk önce problemi analiz etmeye çalışın, bilgi toplayın ve sonra sorun.

İyi eğlenceler.


Özel durumumda sorun, kendi SSH kimliğini kullanan bir komut dosyasını çalıştırmaya çalışırken, aracı yönlendirme ile giriş yapmış olmamdı. Ajan iletme ile koştuğumda, kendi denemeden önce çok fazla kimlik vardı. Bu yüzden, ajan ortamını atmak için senaryoyu ayarladım ve bu onu temizledi. Ayrıca MaxAuthTries'i de arttırabilirdim, ancak bu durumda buna gerek yoktu.
Sean Reifschneider

1
Teşekkürler. -vssh istemcime birden çok anahtar kullanmaya çalıştığımı gösterdi (şimdi oldukça azım var). Onları ajandanssh-add -D
joeytwiddle

12

Bu kötü bir uygulamadır. Sadece uzaktaki kutuda düzenli bir kullanıcı bulundurun ve kullanarak ssh ile bağlanın, daha sonra su / sudo kullanarak root erişimi elde edin.


10

Benim için bu sorun, bağlandığım ana bilgisayar için aşağıdaki ssh_config dosyasını oluşturarak çözüldü.

(~ / .Ssh / yapılandırma)

Host example
HostName example.com
User admin
IdentityFile ~/path/to/ssh_key_rsa
IdentitiesOnly=yes

Sorun ~/.ssh, klasörümde 16 ya da öylesine çok fazla ssh anahtarının bulunması nedeniyle meydana geldi . Yapılandırmadaki her iki IdentityFileAND IdentitiesOnlyyönergesi olmadan makinem, görünüşe göre tüm ~/.sshIdentityFile’i denemeden önce tüm anahtarları deniyordu ve maksimum deneme sayısına ulaşıyordu.


6

Size, yukarıdaki Anon'un yayınladığı gibi, ssh erişimi kazanmak için başka bir kullanıcı kullanmanızı, daha sonra erişim sağlamak için sukomutu kullanmanızı tavsiye ederim root.

Ayrıca etkinleştirdiğinizden emin olun PermitRootLoginiçinde /etc/ssh/sshd_configsunucudaki dosya.


5

Ben de aynı sorunla karşılaştım. Pageant kullanıyorsanız ve içine çok sayıda anahtar yüklüyse , bu sunucular bir ortak anahtarın her teklifini bir kimlik doğrulama girişimi olarak saydığından, bu kolayca gerçekleşebilir .

(Bu tavsiye buradan alınır .)


1
Bağlantılar çürüyordur ve cevap işe yaramaz hale geldiğinden, buradaki yalnızca bağlantı yanıtlarına çok hevesli değiliz. Bağlantıyı elbette tutun, ancak çözümü bir ya da iki paragrafta özetleyebiliyorsanız, burada kendinizden alınabilir bir cevabınız olabilir.
MadHatter

2
Umarım sonraki düzenlememi affedersiniz; şimdi (umarım) atıfta bulunduğunuz tavsiyenin verdiğiniz tavsiye olduğunu açıkça belirtir, ancak yine de orijinal kaynağı kredilendirir. Cevabınızı geliştirmek için çok çalıştığım için benden +1!
MadHatter

Putty'de de "Çok fazla kimlik doğrulama hatası" sorunu vardı. Diğer tüm anahtarları PageAnt'dan çıkardıktan sonra, başarıyla giriş yaptım.
klor

4

Aşağıdaki komutları çalıştırarak sistemimde bu sorunu düzelttim:

eval $(ssh-agent)
ssh-add  ~/.ssh/keyname

Sonra uzak makinede ssh deniyor


3

Başka bir yerde belirtildiği gibi işler tamamen giderilinceye kadar bu sorunu geçici olarak çözmek için, bir kullanıcının PAM hesabını sıfırlayarak yeniden deneyebilirsiniz:

pam_tally --reset --user <USERNAME>
pam_tally2 --reset --user <USERNAME>

2

Ben de benzer bir problem yüzünden ısırıldım. Ancak asıl sebep, ForwardAgent yesboru boyunca bir makinenin config dosyasında olmamdı. Makine A'dan makine B'ye, makine C'ye bağlanıyordum.

Hata mesajı B -> C den ssh denemesinde gösterildi, ancak A iletme aktif olmasına neden oldu. Böylece C önce A'nın tüm anahtarlarına, sonra da B'nin anahtarlarına sunuldu.

A'ya bir anahtar daha eklediğimde aniden belirdi.


1

Mac'imde bu sorunu şöyle düzelttim:

  1. root şifresini "sudo passwd root" ile ayarlayınız.
  2. ssh config dosyasını "nano / etc / ssh_config" ile düzenleme ve kaydetme
  3. RSAAententication'ı evet yerine "hayır" olarak değiştirmek.

0

Tamam, öyleyse benim durumumda bu oldukça garipti, işte gidiyor ...

Bir SSH anahtarına sahip standart bir serseri VM'im var ve Putty'yi kullanarak SSH yapabilirim. PHPStorm'da dağıtım sırasında çalışmaya çalışırken too many authentication failureshata alıyorum. Bu yüzden arttı MaxAuthTriesskinTenimde sshd_configve sonra ben ile çarptı Auth failedhata ve sonra Auth cancel.

Şimdi, niçin bunu bile denediğimi tam olarak bilmiyorum ama ... PHPStorm'daki dağıtım penceresinde SSH anahtar yolumun sonuna noktayı ekledim. Yani böyle oldu:

C:\Users\Deadpool\\.ssh\chimichanga

ve şimdi bu böyle:

C:\Users\Deadpool\\.ssh\chimichanga.

Ve çalışıyor ... ".ssh" klasörümde daha fazla dosya var:

chimichanga - copy of "id_rsa" from vagrant machine
chimichanga.ppk
chimichanga.pub

Fluking noktasının ne yaptığından emin değilim ama .ppkdosyayı kullanmak işe yaramadı, sanırım bu bir tür sihir;) Oh, ve bu "nokta numarası" ndan sonra MaxAuthTries'den kurtulabilirim.


0

Diğer cevaplar size root olarak bağlanmanın en iyi yolunu ve bunun güvenlik çıkarımlarını söylüyor, ancak açıkca soruydu:

Bu hata durumundan kurtarmak ve tekrar macun giriş yapalım?

En son bağlandığınızda bahsettikten sonra uzak sunucu bağlantıyı kesti.

Bulabileceğinizi düşündüğüm şey, uzak sunucunun fail2ban (*) kullanması ve başarılı oturum açtıktan sonra IP'nizi "hapse atması". Tekrar giriş yapmayı deneyerek bunu test edebilirsiniz ve oturum açma istemini bile alamazsınız.

İki çözüm var, ya hapis cezasını bekleyebilirsin, bu noktada işler tamamen normale döndü, ama hapis cezası herhangi bir şey olabilir. Ya da oturum açmak için farklı bir bilgisayar bulabilirsiniz, bunu yapın ve IP'nizi "hapsedin", bu durumda "farklı" uzak sunucunun bakış açısındandır, bu yüzden aynı güvenlik duvarının arkasındaki başka bir bilgisayar muhtemelen çalışmaz .

(*) fail2ban, periyodik olarak çeşitli günlük dosyalarını kontrol edebilen ve güvenlik duvarı kurallarını, istemciden gelen potansiyel olarak zararlı davranışları tespit ettiğinde sunucunun "kaybolmasını" sağlayacak şekilde ayarlayabilen süper kullanışlı bir servistir. Debian'da, belirli bir IP'den birden fazla başarısız ssh girişini tespit etmek için yapılandırılmış kutudan çıkar ve 3'ten sonra (sanırım) tüm IP'leri bu IP'den çıkarır. Bu komut dosyası, kaba kuvvet saldırılarını durdurmak için zekice çalışır.


0

Başka bir cevapta belirtildiği @sufferer olarak, bazı Linux dağıtımları örneğin SSH gibi harici görünür hizmetlerinde saldırılardan korumak üzere gözlemci dahil DenyHostsveya fail2ban. Bu monitörler başarısız denemeler arayan günlük dosyalarını kontrol eder ve çok fazla hata içeren IP adreslerini engellemek için filtreler ekler (sayı yapılandırılabilir ve sshd config'den bağımsızdır).

Dağıtımınız fail2ban, iptables firewall'a kurallar ekleyen servisleri koruyacaksa, aşağıdaki servisleri kullanarak hangi servislerin veya "hapishanelerin" denetlendiğini kontrol edebilirsiniz:

sudo fail2ban-client status

SSH hizmeti için hapishane sshd, bu yüzden kullanabileceğiniz yasaklanmış IP adresleri olup olmadığını kontrol etmek için:

sudo fail2ban-client status sshd

ve abcd bazı IP'lerin yasaklarını kaldırmak için:

sudo fail2ban-client set sshd unbanip a.b.c.d

Eğer varsa DenyHosts, yasaklanmış liste /etc/hosts.deny dosyasında; Bu dosyayı doğrudan root olarak düzenleyebilirsiniz. Bazı IP abcd kalıcı erişim izni vermek için satırı sshd:a.b.c.d/etc/hosts.allow dosyasına ekleyebilirsiniz .

Her zamanki gibi, manemir senin arkadaşın:

man fail2ban
man hosts.deny

Başka benzer yardımcı programlar da mevcut olmalı, ancak ben sadece bunları kullandım.

Sshd konfigürasyonunda izin verilen yeniden deneme sayısının arttırılmasının yasaklanan IP'leri serbest bırakmadığını, sadece aynı bağlantıda daha fazla hataya izin verdiğini unutmayın. İzin verilen sayı aşılırsa, kullanıcı / saldırgan n kere daha denemek için tekrar bağlantı kurar.

Diğer hizmetler yasak listesine dahil edildi (Rajnesh Thakur'un VNC sunucusunun yeniden başlatılması konusundaki cevabında gösterildiği gibi).


-2

Bu sorunu Ubuntu 16.04 sunucumda iki basit adımla çözdüm -

İlk önce vnc sunucumu durdur ya da işlemi sonlandır -

vncserver -kill :1

ve sonra tekrar başlat -

vncserver

Bundan sonra Uzak Masaüstü istemcisinden bağlayın -

192.0.2.99:5901

Yapıldı!


Bunun soru ile ilgisi yok.
Ken Sharp,

-3

çözünürlük için lütfen aşağıdaki adımları izleyin

  1. Yedekle / etc / ssh / sshd_config
  2. Sshd_config içindeki MaxAuthTries değerini artırın
  3. stopsrc -s sshd; startsrc -s sshd

Yukarıdaki değişikliklerden sonra tekrar kontrol edin


-4

"SServer'in bağlantısı kesilmiş ileti türü 2'yi gönderdi (protokol hatası): Kullanıcı için çok fazla kimlik doğrulama hatası" vardı;

Tüm ssh (.ppk anahtarlarını) kaldırarak AD entegre sunucusuna giriş yaparak bu sorunu çözdü.


Bu cevap kullanışlı değildir ve .ppk dosyalarını silmeyi önermek tehlikelidir. Lütfen insanlar, .ppk dosyalarını silmeniz gerektiğini düşünüyorsanız (ve bunun için iyi bir neden olduğunu düşünemiyorum), başka bir şeyle yeniden adlandırın, silmeyin. Büyük olasılıkla ihtiyacınız olan anahtarlarınızı içerirler.
29
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.