J'obtiens la norme
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
message d'erreur. Cependant, le système (Appworx) qui exécute la commande (sftp, cela importe peu) est automatisé et je ne peux pas accepter facilement la nouvelle clé, même après avoir vérifié auprès du fournisseur tiers qu'il s'agissait d'un changement valide. Je peux ajouter un nouveau script Shell que je peux exécuter à partir du même système (et du même utilisateur), mais il ne semble pas exister de commande ou d'argument de ligne de commande indiquant à ssh d'accepter la clé. Je ne trouve rien dans la page de manuel ou sur Google. C'est sûrement possible?
Voici comment dire à votre client de faire confiance à la clé. Une meilleure approche consiste à lui donner la clé à l'avance, ce que j'ai décrit dans le deuxième paragraphe. Ceci est pour un client OpenSSH sous Unix, donc j'espère que cela correspond à votre situation.
Vous pouvez définir le paramètre StrictHostKeyChecking
. Il a les options yes
, no
et ask
. La valeur par défaut est ask
. Pour l’adapter à l’ensemble du système, éditez /etc/ssh/ssh_config
; pour le définir juste pour vous, éditez ~/.ssh/config
; et pour le définir pour une seule commande, indiquez l’option sur la ligne de commande, par exemple.
ssh -o "StrictHostKeyChecking no" hostname
Une autre approche si vous avez accès aux clés de l'hôte pour le système distant consiste à les ajouter à votre fichier known_hosts
à l'avance, afin que SSH les connaisse et ne pose pas la question. Si cela est possible, c'est mieux du point de vue de la sécurité. Après tout, l’avertissement est peut-être juste et vous pourriez vraiment être sujet à une attaque de type "man-in-the-middle".
Par exemple, voici un script qui récupérera la clé et l'ajoutera à votre fichier known_hosts:
ssh -o 'StrictHostKeyChecking no' hostname cat /etc/ssh/ssh_Host_dsa_key.pub >>~/.ssh/known_hosts
Les réponses ici sont un conseil terrible. Vous ne devez jamais désactiver StrictHostKeyChecking dans un système réel (par exemple, si vous ne jouez que sur votre propre réseau local, vous pourrez probablement le faire, mais ne le faites pas).
Utilisez plutôt:
ssh-keygen -R hostname
Cela forcera le fichier known_hosts
à être mis à jour pour supprimer l'ancienne clé du serveur qui a mis à jour sa clé.
Ensuite, lorsque vous utilisez:
ssh user@hostname
Il vous demandera de confirmer l’empreinte digitale - comme c’est le cas pour tout autre "nouveau" serveur (c’est-à-dire auparavant invisible).
Ajouter le fichier suivant
~/.ssh/config
et ceci dans le fichier en tant que contenu
StrictHostKeyChecking no
Ces paramètres feront en sorte que ssh ne demande plus jamais de vérification d'empreinte digitale.