SSH et le changement d'empreinte

Si un serveur est réinstallé, son empreinte SSH peut changer, ce qui pose des soucis aux clients qui veulent s'y connecter à nouveau.

1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Ce message s'explique par le fait que cette empreinte est récupérée à la 1ère connexion et stockée localement sur le poste client dans $HOME/.ssh/known_hosts

On a ce message à la connexion à un nouveau serveur :

1ssh 10.0.0.1
2The authenticity of host '10.0.0.1 (10.0.0.1)' can't be established.
3ED25519 key fingerprint is SHA256:llmB44kKEsDxqY2OWY8mBGd9DpWLrnjoLCmKbf7v0HA.
4This key is not known by any other names.
5Are you sure you want to continue connecting (yes/no/[fingerprint])?

Si on accepte, la ligne suivante est ajoutée dans $HOME/.ssh/known_hosts

1|1|gpGTgdu701VgjRJOKCFOl0JNIKI=|Ih/OZRpdSxeUCb9uuPzfcp48WDg= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKiKeLqlvvdzJEJ13esXKyIWuVJ14wF28Iz5sUtZj8c4

à noter que le host peut être hashé.

Pour "oublier" un serveur, on utilise la commande suivante :

1ssh-keygen -R 10.0.0.1
2# Host 10.0.0.1 found: line 11
3/home/<user>/.ssh/known_hosts updated.
4Original contents retained as /home/<user>/.ssh/known_hosts.old

Si le serveur n'était pas connu on a ce type de sortie

1$ ssh-keygen -R 10.0.0.1
2Host 10.0.0.1 not found in /home/<user>/.ssh/known_hosts

Pour récupérer par anticipation l'empreinte d'un serveur et l'ajouter au known_hosts

1ssh-keyscan 10.0.0.1 >> $HOME/.ssh/known_hosts

Utile dans le cas d'un provisionnement pour que vos scripts qui interagissent en ssh puissent fonctionner dès leur première utilisation.

comments powered by Disqus