Depuis quelques jours j’ai une erreur de connexion via le SSH depuis un de mes scripts vers un switch. Voici la solution.
J’utilise un script qui surveille la consommation POE sur mes switchs Cisco. Depuis quelques jours, pour un switch en particulier j’ai l’erreur SSH suivante :
# FIX: .ssh/known_hosts
Après quelques recherches sur le Net, voici la solution pour résoudre ce problème.
Je décide donc d’exécuter le script depuis mon poller Centreon pour voire si l’erreur d’exécution est un peu plus détaillée.
#su centreon-engine
# ./check_ssh_cisco4500_poe -H 192.168.1.20 -k "sh power inline | exclude n/a" -w 1520 -c 2130
Voici l’erreur :
# FIX: .ssh/known_hosts # SSHProcessError The ssh process was terminated. at ./check_ssh_cisco4500_poe line 99
A priori l’erreur provient de la connexion SSH sur l’équipement. J’essaie toujours depuis mon poller et avec l’utilisateur centreon-engine de me connecter sur l’équipement en SSH.
# ssh admin@192.168.1.20
Et voici l’erreur SSH qui m’est retourné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 30:b3:ba:1f:40:a5:2b:58:d7:1e:a2:73:82:fc:f2:e5. Please contact your system administrator. Add correct host key in /var/lib/centreon-engine/.ssh/known_hosts to get rid of this message. Offending key in /var/lib/centreon-engine/.ssh/known_hosts:72 Password authentication is disabled to avoid man-in-the-middle attacks. Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
Nous voyons que la clé de l’hôte à dû changer et ne correspond plus à celle que nous avons sur notre poller. Ces clés sont stockées dans le fichier known_hosts sur notre CES.
#/var/lib/centreon-engine/.ssh/known_hosts
#locate known_hosts
Il existe plusieurs méthodes plus ou moins facile pour supprimer/modifer une clé dans ce fichier. La méthode la plus simple pour moi étant celle-ci :
#ssh-keygen –R @IP-Equipement #ssh-keygen –R 192.168.1.20
Avant la modification, le fichier est sauvegardé sous le nom known_hosts.old.
Ensuite, reconnectez-vous sur le switch avec la commande suivante :
#ssh admin@192.168.1.20
Enfin, déclencher un contrôle forcé du service. L’erreur a maintenant disparu et les informations remontent correctement.
That’s All.