135 votes

Comment récupérer le message "Too many Authentication Failures for user root" (trop d'échecs d'authentification pour l'utilisateur root) ?

J'ai fait plusieurs tentatives pour établir une connexion SSH pour l'utilisateur root@host en utilisant le terminal Putty. Au cours de cette opération, j'ai spécifié plusieurs fois des informations d'identification erronées, puis je les ai spécifiées correctement. Une fois les informations d'identification acceptées, la session ssh s'interrompt avec le message suivant

"Le serveur a fermé de manière inattendue la connexion".

Cette erreur est signalée par le terminal Putty. Lorsque vous essayez d'envoyer un ssh à root@localhost à partir de la console locale, cela fonctionne bien. Cela fonctionne également lorsque j'essaie d'accéder à otheruser@host depuis un autre hôte. Les problèmes de connectivité réseau ne sont donc pas coupables. La seule erreur à laquelle je pense est : "Trop d'échecs d'authentification pour l'utilisateur root" bien que Putty ait signalé une erreur différente.

La question est la suivante : comment récupérer de cette condition d'erreur et permettre à Putty de se connecter à nouveau ? Le redémarrage de sshd ne semble pas aider

2voto

Igor Stoppa Points 121

J'ai été victime d'un problème similaire. Cependant, la cause réelle était que j'avais ForwardAgent yes dans le fichier de configuration d'une machine le long du tuyau. Je me connectais de la machine A à la machine B puis à la machine C.

Le message d'erreur s'est affiché lors de la tentative de ssh de B -> C, mais il a été causé par le fait que A avait la redirection active. Donc C a d'abord reçu toutes les clés de A, et seulement ensuite celles de B.

Il est apparu soudainement lorsque j'ai ajouté une clé supplémentaire à A.

2voto

Fjor Points 51

Comme @sufferer l'a mentionné dans une autre réponse, certaines distributions Linux incluent des moniteurs pour se protéger des attaques par force brute sur des services externes visibles comme SSH, par exemple DenyHosts ou fail2ban . Ces moniteurs vérifient les fichiers journaux à la recherche de tentatives échouées et ajoutent des filtres pour bloquer les adresses IP qui ont trop d'échecs (le nombre est configurable et indépendant de la configuration de sshd).

Si votre distribution inclut fail2ban qui protègent les services en ajoutant des règles au pare-feu iptables, vous pouvez vérifier quels services ou "prisons" sont supervisés à l'aide de la commande :

sudo fail2ban-client status

Le jail pour le service SSH est sshd, donc pour vérifier s'il y a des IPs interdites vous pouvez utiliser :

sudo fail2ban-client status sshd

et de débanaliser certaines IP a.b.c.d :

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

Si vous avez DenyHosts la liste des adresses interdites se trouve dans le fichier /etc/hosts.deny ; vous pouvez modifier ce fichier directement en tant que root. Pour accorder à une IP a.b.c.d un accès permanent, vous pouvez ajouter la ligne suivante sshd:a.b.c.d au fichier /etc/hosts.allow.

Comme toujours, le man La commande est votre amie :

man fail2ban
man hosts.deny

Il doit exister d'autres utilitaires similaires, mais je n'ai utilisé que ceux-ci.

Notez que l'augmentation du nombre de tentatives autorisées dans la configuration de sshd ne libère pas les IPs interdites, mais permet seulement plus d'échecs dans la même connexion. Si le nombre autorisé est dépassé, l'utilisateur/attaquant se reconnecte simplement pour essayer n fois de plus.

D'autres services ont intégré la liste de bannissement (comme le montre la réponse de Rajnesh Thakur concernant le redémarrage du serveur VNC).

Remarque : Si vous utilisez fail2ban et utilisez un fichier jail.local pour configurer les prisons, ajoutez ce qui suit en haut du fichier pour empêcher que votre adresse IP soit bannie :

[DEFAULT]
ignoreip = 10.10.1.1 10.0.2.0/24

Redémarrez ensuite fail2ban, par exemple en utilisant systemctl restart fail2ban . Le premier IP autorise une seule adresse, le second autorise tout le sous-réseau 10.0.2.x ; ajustez selon les besoins.

1voto

Krishen Greenwell Points 546

J'ai résolu ce problème sur mon Mac en :

  1. en définissant le mot de passe root avec "sudo passwd root" puis
  2. édition et sauvegarde du fichier de configuration ssh avec "nano /etc/ssh_config". et
  3. changer le RSAAuthentication à "non" plutôt qu'à "oui".

1voto

James Bond Points 103

Si l'authentification par mot de passe est toujours activée sur votre serveur, vous pouvez copier votre clé ssh sur celui-ci en utilisant ssh-copy-id et éviter Trop d'échecs d'authentification problème :

ssh-copy-id -i id_rsa_your_key.pub -p 22 -o PubkeyAuthentication=no username@server

0voto

Adam Witorean Points 1

OK, donc dans mon cas, c'était assez bizarre, voilà...

J'ai une VM vagrant standard avec une clé SSH et je peux m'y connecter en utilisant Putty. En essayant d'y accéder pendant le déploiement dans PHPStorm, j'obtiens too many authentication failures erreur. J'ai donc augmenté le MaxAuthTries dans mon sshd_config et ensuite j'ai été frappé par Auth failed et ensuite Auth cancel .

Maintenant, je ne sais pas exactement pourquoi j'ai essayé mais... J'ai ajouté le point à la fin du chemin de ma clé SSH dans la fenêtre de déploiement de PHPStorm. Donc c'était comme ça :

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

et maintenant c'est comme ça :

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

Et ça marche... Dans mon dossier ".ssh", j'ai d'autres fichiers :

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

Je ne suis pas sûr de ce que fait ce putain de point, mais en utilisant la fonction .ppk ne fonctionne pas, donc je suppose que c'est une sorte de magie ;) Oh, et je pourrais me débarrasser de MaxAuthTries après ce "truc du point".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X