mardi 28 octobre 2008

Comment résoudre le problème 'Remote host identification has changed' avec ssh


Après mise-à-jour des composants de ssh, pour des raisons de sécurité par exemple, ou d'autres raisons obscures, vous obtenez le type de message suivant lorsque vous voulez vous connecter via ssh sur la machine concernée:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is

Tout-à-fait normal dans ce cas. Gênant si vous vous en appercevez juste quand vous êtes très pressé, sinon plutôt rassurant pour votre sécurité.

Plusieurs solutions expéditives existent:
  • supprimer ~/.ssh/known_hosts: pas très 'élégant', et vous perdez dans ce cas les informations concernant les autres machines-serveur ssh aussi
  • supprimer la ligne concernant la machine que vous voulez atteindre, dans ~/.ssh/known_hosts: faudrait déjà que le fichier ne soit pas crypté, ou que vous ayez un module crypto greffé sur le bulbe mou
  • etc...

Pourquoi tant de violence, alors qu'il suffit d'une commande pour générer la clé de nouveau?

ssh-keygen -R hostname

'hostname' étant la machine, par exemple l'adresse ip, que vous voulez atteindre par ssh. (192.168.0.x etc...)

Est-il besoin de le repéter, Linux est loin d'être une boîte noire surtout en matière de sécurité. Pour plus d'informations, ne serait-ce que pour comprendre ce que je suis en train de vous dire de taper sur votre machine, le plus simple avant de déranger google est, comme d'habitude, de commencer par:

man ssh-keygen

6 commentaires:

AP a dit…

Curieux. Chez moi...
1. Le binaire "ssh-agent" ne gère pas l'option "-R" (OpenSSH 4.7p1)
2. Mon "known_hosts" est un bête fichier texte pas du tout crypté. Si je veux faire oublier à mon client ssh la signature d'une machine précédemment contactée, je vire la ligne à la main dans le fichier. Hop.

Thierry R. Andriamirado a dit…

ap, pour supprimer l'ancienne clé afin qu'elle soit re-générée, il faut utiliser ssh-keygen -R et non pas ssh-agent.

J'avais moi aussi l'habitude d'avoir le nom d'ordinateur hôte non-haché dans ~/.ssh/known_hosts. L'option HashKnownHosts mise à yes dans le fichier de config global /etc/ssh/ssh_config est responsable de ce comportement, en tout cas sur mes Ubuntu, à vérifier sur la Debian etc...: un man ssh_config nous indique bien que cette option est mise à no par défaut.

Clair que c'etait pratique de pouvoir ouvrir known_hosts avec vim, aller sur la ligne concernée, faire 'dd' et ':wq', et hop on passe à autre chose. Que les noms d'hôtes soient hachés par défaut sur certains systèmes me donnent néanmoins un sentiment de sécurité supplémentaire. Sans plus, quoi..

Julien a dit…

Heu, lorsque ssh vous crache dessus avec un "Remote host identification has changed" et le regard haineu, il indique la ligne concernée, il suffit de la supprimer avec vim.

saveoursmile a dit…

merci pour l'astuce... Je vais être moins barbare et oublier un peu vim pour les prochaines fois :-)

Thierry R. Andriamirado a dit…

julien, ben si le numéro de ligne est bien indiqué etc..., oui la solution de la suppression manuelle reste toujours valable. Je suis d'accord avec toi: un regard haineux mérite soit l'indifférence soit une grosse baffe ;-)

saveoursmile, ben tu sais dans des moments de speed j'en ai même supprimé, des fichiers ~/.ssh/known_hosts em...bettants! tout au moins déplacé. Mais bon, quelque part je me dis que l'utilisation de ssh-keygen est conseillée car à l'avenir il peut probablement évoluer et faire autre chose que de simplement supprimer l'entrée concernée dans known_hosts. Peut-être le fait-il déjà, G pas vérifié ;)

Beaucoup de nouveaux utilisateurs sous Linux ne vont (peut-être) pas pouvoir trifouiller partout tout de suite et faire des expérimentations à la Gaston Lagaffe. Ce qu'il leur faut C pouvoir continuer à utiliser leur machine et travailler sans avoir à comprendre toutes les subtilités des bidules. 'ssh-keygen -R' semble le plus safe.

Anonyme a dit…

Hello,

I mostly visits this website[url=http://www.weightrapidloss.com/lose-10-pounds-in-2-weeks-quick-weight-loss-tips].[/url]linuxeries.blogspot.com is filled with quality info. Do you pay attention towards your health?. Here is a fact for you. Recent Scientific Research points that closely 90% of all U.S. grownups are either obese or overweight[url=http://www.weightrapidloss.com/lose-10-pounds-in-2-weeks-quick-weight-loss-tips].[/url] Therefore if you're one of these individuals, you're not alone. Infact many among us need to lose 10 to 20 lbs once in a while to get sexy and perfect six pack abs. Now next question is how you can achive quick weight loss? [url=http://www.weightrapidloss.com/lose-10-pounds-in-2-weeks-quick-weight-loss-tips]Quick weight loss[/url] is not like piece of cake. You need to improve some of you daily habbits to achive weight loss in short span of time.

About me: I am webmaster of [url=http://www.weightrapidloss.com/lose-10-pounds-in-2-weeks-quick-weight-loss-tips]Quick weight loss tips[/url]. I am also health trainer who can help you lose weight quickly. If you do not want to go under difficult training program than you may also try [url=http://www.weightrapidloss.com/acai-berry-for-quick-weight-loss]Acai Berry[/url] or [url=http://www.weightrapidloss.com/colon-cleanse-for-weight-loss]Colon Cleansing[/url] for effective weight loss.