Recherche…


La clé privée n'est pas acceptée (débogage des clients OpenSSH)

Par défaut, la plupart des informations sont masquées par l'utilisateur. Vous pouvez utiliser les -v pour obtenir un journal détaillé de la tentative de connexion, qui identifiera généralement le problème en montrant pourquoi le comportement est différent de celui attendu.

Supposons que vous vous connectiez au serveur example.com utilisant ssh (ou un autre client OpenSSH comme sftp ou scp ) et que votre clé privée ne soit pas acceptée par le serveur et que le serveur demande le mot de passe (ou refuse la connexion):

$ ssh example.com
[email protected]'s password: 

Essayez de lancer le ssh avec les commutateurs -vvv , qui écriront tous les messages de débogage. Ce sera beaucoup d'informations, mais après un certain temps, il est assez facile de comprendre que:

$ ssh -vvv example.com

Le problème le plus courant est que la clé ne se trouve pas à l'emplacement prévu. Vous pouvez vous attendre à des lignes similaires, se plaignant des fichiers manquants. Vérifier que votre fichier a bien été lu est un bon début:

debug1: identity file /home/username/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/username/.ssh/id_dsa-cert type -1

Nous pouvons continuer à la partie authentification. La clé peut être proposée, mais rejetée par le serveur, en raison d'un problème de configuration du serveur. Le journal pourrait ressembler à ceci:

debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: username@localhost
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password

IDENTIFICATION HÔTE À DISTANCE A CHANGÉ!

L'erreur commune à l'aide de ssh est de voir l'erreur comme

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Please contact your system administrator.
Add correct host key in /Users/username/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/username/.ssh/known_hosts:12
RSA host key for *IP address* has changed and you have requested strict checking.
Host key verification failed.

Cela signifie que vous vous êtes connecté au même serveur auparavant et qu'il a été identifié à l'aide de différentes clés d'hôte. Si vous savez que vous avez modifié les clés du serveur, réinstallé le serveur ou l'administrateur du serveur a annoncé des modifications, il est généralement possible de supprimer l'ancienne clé et de laisser le ssh en stocker de nouvelles.

L'ancienne clé peut être supprimée de manière transparente à l'aide de ssh-keygen :

ssh-keygen -R *IP address*

Et la prochaine connexion devrait vous demander de vérifier la nouvelle empreinte digitale:

ssh192.168.0.128
The authenticity of host '192.168.0.128 (192.168.0.128)' can't be established.
ECDSA key fingerprint is SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Are you sure you want to continue connecting (yes/no)? 

Si vous n'êtes pas au courant de ce qui précède, le mieux est de contacter votre administrateur de serveur pour vous assurer que tout va bien. Dans le cas contraire, l'attaquant potentiel pourrait obtenir à la fois vos informations d'authentification et toutes les données transférées!

Connexion rejetée

Une erreur "Connexion refusée" se produit si votre client envoie une demande de connexion à un hôte de serveur distant et que l'hôte distant répond qu'il refuse d'accepter la demande. L'erreur "Connexion refusée" signifie essentiellement que l'ordinateur n'accepte pas les connexions à l'adresse IP et au port demandés.

"Connexion refusée" peut être provoquée par un pare-feu qui bloque les demandes de connexion. Un pare-feu configuré pour bloquer les connexions à un point de terminaison particulier peut être configuré pour supprimer les demandes de connexion - auquel cas le client ne recevra jamais de réponse et finira par expirer. Ou le pare-feu peut répondre aux demandes de connexion de connexion avec une réponse de refus.

Mis à part les pare-feu, dans le cas de SSH, la "connexion refusée" a quelques causes possibles:

  • Vous pouvez utiliser le mauvais numéro de port pour vous connecter. Le numéro de port standard pour SSH est 22, mais certaines personnes exécutent le service ssh sur un autre port pour dissuader les tentatives d'accès non autorisées.

  • Vous pourriez essayer de vous connecter au mauvais ordinateur. Vous avez peut-être mal saisi le nom d'hôte ou l'adresse IP. Ou l'ordinateur peut utiliser une adresse attribuée dynamiquement qui a changé.

  • Le processus du serveur ssh n'est peut-être pas en cours d'exécution:

    • Il n'a peut-être pas encore démarré si le système est en cours de démarrage.
    • Il a peut-être été désactivé par exemple lorsque le système est en mode mono-utilisateur.
    • Il a peut-être été mal configuré, ce qui l'a empêché de démarrer.
    • L'ordinateur n'a peut-être pas de serveur SSH configuré. Les systèmes MS Windows n'incluent généralement pas de serveur SSH. Sur certains systèmes Linux, le serveur SSH peut être un composant facultatif. OS X inclut un serveur SSH, mais il est désactivé par défaut.
  • Le processus du serveur SSH n'écoute peut-être pas les connexions sur l'interface IP spécifique à laquelle vous essayez de vous connecter. La plupart des ordinateurs ont au moins deux interfaces IP, une interface "localhost" et une ou plusieurs interfaces réseau. Chaque interface active aura une adresse IP associée. Un serveur SSH est généralement configuré pour accepter les connexions sur toute interface IP. Mais il peut être configuré pour accepter des connexions uniquement sur des interfaces particulières. Dans ce cas, l'ordinateur refusera les connexions à une adresse IP que le serveur SSH n'écoute pas, même si la demande de connexion dispose du port correct.

  • Le serveur peut avoir un retard de demandes de connexion au même port. Ceci est rare et inhabituel, mais si l'hôte reçoit des demandes de connexion plus rapidement qu'il ne peut être traité, l'hôte finira par rejeter les nouvelles demandes de connexion.

Notez que, les pare - feu mis à part, « refus de connexion » signifie que vous communiquez avec l'ordinateur distant - il est tout simplement pas accepter votre demande de connexion.

La connexion a expiré

Une erreur "Connexion expirée" se produit lorsque le système distant ne répond pas à la tentative du client d'ouvrir une connexion TCP / IP. Les causes les plus courantes sont les suivantes:

  • Un pare-feu bloque la tentative de connexion sur le port que vous utilisez:
    • Le pare-feu peut être côté client, en bloquant les connexions sortantes, côté serveur, en bloquant les connexions entrantes ou ailleurs sur le chemin.
    • Le problème de base pourrait être que vous utilisez le mauvais numéro de port.
  • L'hôte auquel vous essayez de vous connecter peut être hors ligne.
  • Une partie du réseau entre le client et le serveur peut être interrompue ou interrompue.
  • Il pourrait y avoir un problème de routage réseau.

Le diagnostic de la cause racine des délais de connexion est difficile.

ssh_exchange_identification: lire: connexion réinitialisée par l'homologue

Ce message d'erreur peut être généré par le client OpenSSH ssh . Cela signifie que la connexion TCP entre le client et le serveur a été anormalement fermée par le serveur immédiatement après son acceptation. Les raisons courantes de ce message sont les suivantes:

  • Le processus du serveur SSH ne fonctionne pas correctement - par exemple, il a planté.
  • Un pare-feu, un routeur ou un autre périphérique réseau entre le client et le serveur interfère avec la connexion SSH.

Les phrases du message d'erreur indiquent précisément ce qui s'est passé:

ssh_exchange_identification: 1. Après qu'un client SSH se soit connecté à un serveur SSH, la première étape du démarrage du protocole SSH consiste pour le serveur à envoyer sa version du logiciel au client. Une erreur contenant "ssh_exchange_identification" indique que l'erreur s'est produite immédiatement après la connexion TCP, alors que le client attendait la version du logiciel du serveur.

Réinitialisation de la connexion: Une réinitialisation de la connexion signifie que la connexion TCP était "anormalement fermée". Vous pouvez l'obtenir si le processus logiciel contenant l'une des connexions TCP se bloque. Les pare-feu réseau peuvent être configurés pour utiliser les réinitialisations de connexion afin de bloquer les connexions TCP.

Par homologue signifie que la connexion TCP a été fermée de "l'autre extrémité" de la connexion. Dans ce cas, l’autre extrémité est le serveur SSH distant.

Notez que cette erreur n'indique aucun type d'échec d'authentification. Le serveur a fermé la connexion TCP immédiatement après l' avoir acceptée. Le client et le serveur n'ont encore échangé aucune donnée. Le serveur n'a pas encore envoyé de clé d'hôte au client et le client n'a pas encore essayé de s'authentifier auprès du serveur.

ssh_exchange_identification: connexion fermée par l'hôte distant

Ce message d'erreur peut être généré par le client OpenSSH ssh. Cela signifie que la connexion TCP entre le client et le serveur a été fermée par le serveur immédiatement après son acceptation. Ce message indique généralement que le serveur SSH a été configuré pour ne pas accepter les connexions du client pour une raison quelconque:

  • Le serveur peut être configuré pour refuser les connexions de l'adresse IP du client.
  • Le serveur peut être configuré avec une limite sur le nombre de connexions SSH actives.
  • Le client peut être connecté à quelque chose qui n'est pas un serveur SSH.

Les phrases du message d'erreur indiquent précisément ce qui s'est passé:

ssh_exchange_identification: 1. Après qu'un client SSH se soit connecté à un serveur SSH, la première étape du démarrage du protocole SSH consiste pour le serveur à envoyer sa version du logiciel au client. Une erreur contenant "ssh_exchange_identification" indique que l'erreur s'est produite immédiatement après la connexion TCP, alors que le client attendait la version du logiciel du serveur.

Connexion fermée: Cela signifie que la connexion TCP a été fermée de manière normale. Cela indique que le serveur SSH a délibérément fermé la connexion. Cela contraste avec "Réinitialisation de la connexion", ce qui pourrait indiquer que le serveur SSH est tombé en panne ou a mal fonctionné.

par hôte distant signifie que la connexion TCP a été fermée de "l'autre extrémité" de la connexion. Dans ce cas, l’autre extrémité est le serveur SSH distant.

Notez que cette erreur n'indique aucun type d'échec d'authentification. Le serveur a fermé la connexion TCP immédiatement après l' avoir acceptée. Le client et le serveur n'ont encore échangé aucune donnée. Le serveur n'a pas encore envoyé de clé d'hôte au client et le client n'a pas encore essayé de s'authentifier auprès du serveur.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow