J'ai un compte hostgator avec l'accès ssh activé. Lorsque vous essayez de télécharger le fichier de clé .pub généré avec cette commande:
rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub [email protected]:.ssh/authorized_keys
Je continue à recevoir:
Déconnexion reçue à partir de 111.222.33.44: 2: Trop d'échecs d'authentification pour le nom d'utilisateur rsync: connexion fermée de manière inattendue (0 octet reçu à ce jour) [expéditeur] Erreur rsync: erreur inexpliquée (code 255) à io.c (601) [expéditeur = 3.0.7]
J'ai déjà joué avec ssh jusqu'à l'échec de l'authentification. Mais maintenant, il semble que le compteur d'échecs d'authentification ne réinitialise pas (attend depuis plus de 12 heures maintenant, le support technique "suppose" qu'il réinitialise après 30 min à 1 heure, et un autre mec m'a dit "il réinitialise à chaque fois que vous essayez de vous connecter avec le nom d'utilisateur ", jeesh).
Ça me rend dingue. J'ai même eu cette installation dans un serveur personnalisé Slicehost et eu moins de problèmes que ces gars-là.
Des conseils? C'est peut-être quelque chose côté client et pas côté serveur.
la source
Réponses:
Cela est généralement dû à l’offre par inadvertance de plusieurs clés ssh au serveur. Le serveur rejettera toute clé si trop de clés ont été proposées.
Vous pouvez le constater vous-même en ajoutant l'
-v
indicateur à votressh
commande pour obtenir une sortie détaillée. Vous verrez que de nombreuses clés sont proposées jusqu'à ce que le serveur refuse la connexion en disant: "Trop d'échecs d'authentification pour [utilisateur]" . Sans le mode commenté, vous ne verrez que le message ambigu "Connexion réinitialisée par un homologue" .Pour empêcher que des clés non pertinentes ne soient proposées, vous devez explicitement spécifier cela dans chaque entrée d'hôte du
~/.ssh/config
fichier (sur la machine cliente) en ajoutantIdentitiesOnly
comme suit:Si vous utilisez ssh-agent, il est utile d’exécuter
ssh-add -D
pour effacer les identités.Si vous n'utilisez aucune configuration d'hôtes ssh, vous devez spécifier explicitement la clé correcte dans la
ssh
commande, comme suit:Remarque: le paramètre 'IdentitiesOnly yes' devait être entre guillemets.
ou
la source
ssh -i some_id_rsa -o "IdentitiesOnly yes" them@there:/path/
ssh
"offre-t-il plusieurs clés" (tout en dessous~/.ssh
), même lorsque la règle pour host a unIdentityFile /path/to/private_key_file
paramètre explicite ? Cette clé explicitement spécifiée ne devrait-elle pas (à tout le moins) être offerte en premier? N'est-ce pas un bug / une erreur de fonctionnement dans le client openssh?IdentityFile
option? Par exemple, sans l'IdentitiesOnly
option, il essaie d'utiliser magithub
clé lorsque j'essaie de le fairessh gitlab.com
. Cela n'a aucun sens.J'ai trouvé un moyen plus simple de le faire (si vous utilisez l'authentification par mot de passe):
Cela force l'authentification sans clé. J'ai pu me connecter immédiatement.
Référence
la source
rsync
:rsync -av -e 'ssh -o PubkeyAuthentication=no' '[email protected]:~/remote_file' 'local_file'
Je recevais aussi cette erreur et j'ai constaté qu'il se produisait car le serveur était configuré pour accepter jusqu'à 6 tentatives:
En plus de définir le
IdentitiesOnly yes
dans votre~/.ssh/config
fichier, vous avez deux autres options.MaxAuthTries
(sur le serveur ssh)~/.ssh/
répertoire et exécuterssh-add -D
~/.ssh/config
fichierAinsi:
Ce n’est probablement pas un bon moyen de s’y prendre, étant donné que cela affaiblit un peu votre serveur ssh puisqu’il acceptera désormais plus de clés lors d’une tentative de connexion donnée. Pensez ici à des vecteurs d’attaque par force brute.
C'est un bon moyen de partir en supposant que vous avez des clés inutiles et que vous pouvez les supprimer définitivement.
Et l'approche consistant à définir IdentitiesOnly sont probablement les moyens privilégiés de traiter ce problème!
la source
J'ai ajouté à ~ / .ssh / config ceci:
Il active l'option IdentitiesOnly = yes par défaut. Si vous devez vous connecter avec une clé privée, vous devez le spécifier avec l'option -i.
la source
Si vous obtenez l'erreur SSH suivante:
Cela peut arriver si (par défaut sur mon système) au moins cinq fichiers d'identité DSA / RSA sont stockés dans votre répertoire .ssh et si l'option '-i' n'est pas spécifiée sur la ligne de commande.
Le client ssh tentera d'abord de se connecter en utilisant chaque identité (clé privée) et la prochaine invite d'authentification par mot de passe. Cependant, sshd interrompt la connexion après cinq tentatives de connexion infructueuses (à nouveau, la valeur par défaut peut varier).
Si vous avez plusieurs clés privées dans votre répertoire .ssh, vous pouvez désactiver "Authentification par clé publique" sur la ligne de commande à l'aide de l'argument facultatif '-o'.
Par exemple:
la source
Si vous avez un mot de passe et souhaitez simplement vous en servir pour vous connecter, voici comment procéder.
Pour utiliser UNIQUEMENT l'authentification par mot de passe et NON pour utiliser la clé publique et NE PAS utiliser le "clavier interactif" quelque peu trompeur (qui est un sur-ensemble comprenant un mot de passe), vous pouvez le faire à partir de la ligne de commande:
la source
@ David dit: ajoutez simplement ceci
IdentitiesOnly yes
à votre .ssh / config, cela fait la même chose quessh -o PubkeyAuthentication=no.
Après vous être connecté, supprimez
.ssh/authorized_keys
. Maintenant, retournez à la machine locale et tapez ce qui suitcat ~/.ssh/id_rsa.pub | ssh -o PubkeyAuthentication=no user@IP_ADDR 'cat >> .ssh/authorized_keys'
. Cela devrait réactiver votre SSH avec une clé publiquela source
Je sais que c’est un vieux sujet, mais je voulais simplement ajouter ici que j’ai rencontré le même message d’erreur, mais que le propriétaire du dossier .ssh était root plutôt que l’utilisateur qui utilisait la clé. J'ai corrigé le problème en lançant les commandes suivantes:
Je me suis également assuré que les autorisations étaient correctes sur le dossier .ssh:
Les fichiers du répertoire .ssh doivent avoir l'autorisation de 600:
la source
Dans mon cas, le problème était les autorisations de répertoire. Cela a résolu le problème pour moi:
la source
Dans mon cas, cela se passait parce que j'utilisais le nom d'utilisateur "ubuntu", mais le nom d'utilisateur dans cette instance était "ec2-user"
Après avoir fait ce que "John T" a suggéré, j'ai eu cette erreur:
Ensuite, j'ai trouvé la solution (changer le nom d'utilisateur en "ec2-user") dans cette réponse: https://stackoverflow.com/questions/1454629/aws-ssh-access-permission-denied-publickey-issue
la source
Ma clé publique était entrée
.ssh/authorized_keys2
, mais le serveur était configuré pour lire uniquement.ssh/authorized_keys
:Après avoir déplacé mon fichier vers
.ssh/authorized_keys
, je peux me connecter avec succès avec ma clé.la source
Ce message est dû à un trop grand nombre de tentatives d’authentification infructueuses compte tenu des limites autorisées appliquées sur le serveur SSH distant. Cela signifie potentiellement que vous avez trop d'identités ajoutées dans l'agent SSH.
Voici quelques suggestions:
-v
à voir si c'est le cas (vous utilisez trop d'identités).ssh-add -l
.ssh-add -d
.ssh-add -D
et ne rajouter que celles pertinentes.Si vous avez accès au serveur SSH, cochez l'
MaxAuthTries
option (voir:)man sshd_config
.Article connexe: Qu'est-ce qu'une connexion pour
sshd_config
la limite 's' MaxAuthTries '?Si cela ne vous aide pas, assurez-vous que vous utilisez les bonnes informations d'identification ou le bon fichier.
la source
Ce message peut apparaître lorsque le nom d'utilisateur et le mot de passe correct ne sont pas entrés.
Vérifiez d'abord que l'utilisateur est répertorié:
la source