Skip to content

Réparer une connexion SSH qui ne se fait plus

Ce que l'on va faire ici

Nous allons voir ici comment réparer une connexion SSH par mot de passe qui ne se fait plus.

Dans quel cas ?

Typiquement, le scénario évoqué ici est le suivant : vous avez un poste sur le réseau local dont vous êtes sûr de l'adresse ip mais quand vous essayez de vous y connecter pour du partage de fichier par exemple, vous avez un message d'erreur indiquant une connexion impossible...

Pré-requis

On présuppose ici que le poste auquel on accède dispose bien d'un serveur SSH actif et opérationnel. On est finalement dans le cas d'une connexion qui a fonctionné au préalable d'une façon ou d'une autre et qui ne fonctionne plus.

La procédure

Face à tout problème de connexion d'un service en SSH et qui pose problème, avoir le réflexe de rebasculer en ligne de commande pour se connecter au serveur SSH :

ssh user@ip.du.serveur.ssh

Typiquement, on a alors un message d'erreur de la forme :

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 ECDSA key sent by the remote host is
SHA256:QE+8+iqhflk<hfkl<jhf<fh00XyIwblC53/jV++Ek.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/user/.ssh/known_hosts:69
  remove with:
  ssh-keygen -f "/home/xavier072/.ssh/known_hosts" -R "ip.du.serveur.ssh"
ECDSA host key for ip.du.serveur.ssh has changed and you have requested strict checking.
Host key verification failed.

Comme le message l'indique, l'identité du serveur pose problème et une ligne de commande est suggérée pour mettre les choses au propre. Saisir donc :

ssh-keygen -f "/home/user/.ssh/known_hosts" -R "ip.du.serveur.ssh" 

Ce qui donne alors :

# Host ip.du.serveur.ssh found: line 69
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.old

A présent, la connexion SSH redevient possible en faisant :

ssh user@ip.du.serveur.ssh

On obtient alors un message identique à celui que l'on aurait sur une première connexion :

The authenticity of host 'ip.du.serveur.ssh (ip.du.serveur.ssh)' can't be established. ECDSA key fingerprint is SHA256:QE+8+iqhflk<hfkl<jhf<fh00XyIwblC53/jV++Ekk. Are you sure you want to continue connecting (yes/no)?

Valider positivement. Une fois la connexion à nouveau opérationnelle en ligne de commande, on peut relancer le service basé sur SSH qui posait problème initialement.