J'ai réinstallé mon serveur et je reçois les messages suivants:
[user@hostname ~]$ ssh root@pong
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 RSA key sent by the remote Host is
6e:45:f9:a8:af:38:3d:a1:a5:c7:76:1d:02:f8:77:00.
Please contact your system administrator.
Add correct Host key in /home/hostname /.ssh/known_hosts to get rid of this message.
Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
RSA Host key for pong has changed and you have requested strict checking.
Host key verification failed.
J'ai essayé diverses solutions trouvées sur Internet. Mon fichier known_hosts
(normalement dans ~/.ssh/known_hosts
) est dans /var/lib/sss/pubconf/known_hosts
. J'ai essayé de le modifier, mais il reste dans un état. J'ai installé ipa-client et j'ai Fedora 19. Comment résoudre cet avertissement?
Toutes les réponses données jusqu’à présent ne fonctionnent que si Freeipa n’est pas installé.
Bonne réponse pour freeipa dans les commentaires ci-dessous de adrin ici .
Voici la solution la plus simple
ssh-keygen -R <Host>
Par exemple,
ssh-keygen -R 192.168.3.10
De ssh-keygen
page de manuel :
-R hostname
Supprime toutes les clés appartenant à hostname d'un fichier known_hosts. Cette option est utile pour supprimer les hôtes hachés (voir l’option -H ci-dessus).utilisation
ssh-keygen -R hostname
Un exemple avec une adresse IP/nom d’hôte serait:
ssh-keygen -R 168.9.9.2
Cela mettra à jour l'infraction de votre hôte à partir de la connu
J'ai eu cette même erreur après avoir recréé une image de Digital Ocean Ubuntu. J'ai utilisé la commande suivante avec l'adresse IP de mon serveur à la place de [IP_ADDRESS]
ssh-keygen -R [IP_ADDRESS]
Lorsque vous réinstallez le serveur, son identité change et vous commencez à recevoir ce message. Ssh n'a aucun moyen de savoir si vous avez changé le serveur auquel il se connecte, ou si un serveur au milieu a été ajouté à votre réseau pour détecter toutes vos communications - vous en êtes informé.
Supprimez simplement la clé de known_hosts en supprimant l'entrée correspondante:
sed '4d' -i /var/lib/sss/pubconf/known_hosts
Le 4d
se trouve sur le compte de Offending RSA ...known_hosts:4
Le sledgehammer doit retirer chaque hôte connu d'un seul coup:
rm ~/.ssh/known_hosts
Je me heurte à cela car nous utilisons de petits sous-réseaux de serveurs de courte durée à partir d'une boîte de connexion, et avons souvent la réutilisation d'adresses IP internes de serveurs qui partagent la même clé ssh.
Le problème est que vous avez déjà accepté une connexion SSH avec un ordinateur distant et que l'empreinte numérique de cet ordinateur distant ou la clé de hachage SHA256 a changé depuis votre dernière connexion. Ainsi, lorsque vous essayez à nouveau SSH ou utilisez github pour extraire le code, qui utilise également SSH, vous obtenez une erreur. Pourquoi? Parce que vous utilisez la même adresse d'ordinateur distant qu'avant, mais l'ordinateur distant répond avec une empreinte digitale différente. Par conséquent, il est possible que quelqu'un usurpe l'ordinateur précédemment connecté. C'est un problème de sécurité.
Si vous êtes sûr à 100% que l'ordinateur distant n'est pas compromis, piraté, spoofé, etc., il vous suffit de supprimer l'entrée de votre fichier known_hosts pour l'ordinateur distant. Cela résoudra le problème car il n'y aura plus d'incompatibilité avec les identifiants d'empreintes digitales SHA256 lors de la connexion.
Sur Mac, voici ce que j'ai fait:
1) Recherchez la ligne de sortie qui se lit RSA Host key for servername:port has changed and you have requested strict checking.
Vous aurez besoin à la fois du nom de serveur et, éventuellement, du port de cette sortie du journal.
2) Sauvegardez le fichier hôtes connus SSH cp /Users/yourmacusername/.ssh/known_hosts /Users/yourmacusername/.ssh/known_hosts.bak
3) Recherchez la ligne contenant l'ancienne empreinte digitale de l'ordinateur et supprimez-la. Vous pouvez rechercher l'empreinte spécifique de l'ordinateur distant incriminé à l'aide du nom de serveur et du port de l'étape 1. nano /Users/yourmacusername/.ssh/known_hosts
4) CTRL-X pour quitter et choisir Y pour enregistrer les modifications
Maintenant, tapez ssh -p port servername
et vous recevrez l'invite originale que vous avez faite lorsque vous avez essayé pour la première fois d'utiliser SSH sur cet ordinateur. Vous aurez ensuite la possibilité d'enregistrer l'empreinte SHA256 mise à jour de cet ordinateur distant dans votre fichier known_hosts. Si vous utilisez SSH sur le port 22, l'argument -p n'est pas nécessaire.
Tous les problèmes que vous pouvez restaurer le fichier known_hosts d'origine: cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts
Comme beaucoup l'ont déjà dit, utilisez ssh-keygen
, c'est-à-dire.
ssh-keygen -R pong
Vous pouvez également envisager de désactiver temporairement la vérification de la clé de l'hôte:
ssh -oStrictHostKeyChecking=no root@pong
J'ai utilisé la solution mockinterface, bien que le sed -i ne fonctionne pas vraiment .__ Je l'ai résolu en supprimant la ligne à la main avec vim:
Sudo vim /var/lib/sss/pubconf/known_hosts
Vous pouvez utiliser n’importe quel autre éditeur de texte de votre choix, mais vous devrez probablement indiquer vos privilèges d’administrateur.
Travaille pour moi!
Erreur: Clé RSA incriminée dans/var/lib/sss/pubconf/known_hosts: 4
Cela indique que vous avez une clé RSA incriminée à la ligne no. 4
Solution 1 :
1.
vi /var/lib/sss/pubconf/known_hosts
2.
remove line no: 4
.3.
Save and Exit, and Retry
.
Solution 2:
ssh-keygen -R "you server hostname or ip"
OU
Solution 3:
sed -i '4d' /root/.ssh/known_hosts
Cela supprimera la ligne 4th
de /root/.ssh/known_hosts
en place (-i
).
En effet, les paramètres de votre ordinateur distant ont été modifiés. Supprimez vos clés actuelles pour cela.
vim /root/.ssh/known_hosts
Supprimez la ligne de l'IP que vous connectez.
Les autres réponses ici sont bonnes et fonctionnent, de toute façon, j'ai résolu le problème en supprimant ~/.ssh/known_hosts
. Cela résout le problème, mais ce n'est probablement pas la meilleure approche.
Supprimez cette entrée de known_hosts en utilisant:
ssh-keygen -R *ip_address_or_hostname*
Cela supprimera l'adresse IP ou le nom d'hôte problématique du fichier known_hosts et essaiera de vous reconnecter.
À partir des pages de manuel:
-R hostname
Supprime toutes les clés appartenant à hostname d'un fichier known_hosts. Cette option est utile pour supprimer les hôtes hachés (voir l’option -H Ci-dessus).
Dans mon cas, cela est dû au fait que je j'avais déjà une connexion SSH avec une machine ayant la même adresse IP (disons 192.152.51.10) et que le système envisageait la clé RSA (stockée dans /home/nom_utilisateur/.ssh/hosts_connus) de l'hôte précédent, ce qui a entraîné une disparité.
Pour résoudre ce problème, vous devez supprimer la clé RSA précédemment stockée pour l'adresse IP 192.152.51.10.
ssh-keygen -f "/home/user_name/.ssh/known_hosts" -R 192.152.51.10
Pour les utilisateurs Mac, vous pouvez utiliser l'indicateur -R
de la commande ssh-keygen
. Exemple rapide:
ssh-keygen -R THE_IP_ADDRESS
THE_IP_ADDRESS
étant l'IP dans laquelle vous essayez de ssh. Et puis vous pouvez vous connecter bien.
Si vous essayez de vous connecter au conteneur Docker en cours d’exécution sur le port 2222 à l’aide de la commande et que vous obtenez l’erreur
mian@tdowrick2~$ ssh pos@localhost -p 2222
Ensuite, pour résoudre ce problème, sur votre ordinateur local (c’est-à-dire que la machine hôte ne contient pas de conteneur), accédez à cd ~/.ssh/
et ouvrez le fichier known_hosts
avec l’éditeur de texte. Supprimez la ligne commençant par [localhost]:2222
et enregistrez le fichier. Maintenant, essayez à nouveau SSH
mian@tdowrick2~$ ssh pos@localhost -p 2222
L'erreur disparaîtra mais vous devrez le faire à chaque redémarrage du conteneur.
Seul problème côté client (clé dupliquée pour ip):
Résoudre les variantes:
Pour effacer une adresse IP (port 22 par défaut):
ssh-keygen -f -R 7.7.7.7
Pour une adresse IP ( non par défaut port):
ssh-keygen -f -R 7.7.7.7:333
Rapide effacer toutes les ips:
cd ~; rm .ssh/known_hosts
7.7.7.7 - ssh la connexion ip de votre serveur
333 - port non standard
Une solution très simple: éditez /home/hostname /.ssh/known_hosts
, supprimez la 4 ligne et sauvegardez-la. puis relancez ssh root@pong
, vous verrez le message suivant: Are you sure you want to continue connecting (yes/no)? yes
, imprimez simplement yes
.
Cela fonctionne pour moi.
À propos: si vous rencontrez un problème, lisez d'abord les astuces, cela vous aidera.
J'ai eu la même erreur dans ma machine et j'ai effacé les fichiers authorized_keys
et known_hosts
, et après cela, tout fonctionne bien.
Ma solution est:
vi ~/.ssh/known_hosts
C’est mieux que de supprimer tout le known_hosts
J'ai eu ce problème, et la raison est très simple, j'ai une adresse IP en double pour la connexion SSH, donc après avoir modifié ce problème, tout est résolu.
Utilisez cette commande:
truncate -s 0 /home/SYSTEM_NAME/.ssh/known_hosts
Il suffit de faire:
cd /home/user/.ssh/
-> ici user
sera votre nom d'utilisateur, par exemple /home/jon/
par exemple.
Ensuite
gedit known_hosts &
et supprimez le contenu qu'il contient.
Maintenant ssh
encore, cela devrait fonctionner.
Ma solution sur UBUNTU (linux):
1.Vous devez supprimer le contenu du fichier "known_hosts" qui se trouve dans "/home/YOUR_USERNAME/.ssh/known_hosts".
2. Générez une nouvelle clé ssh telle que "ssh-keygen -t rsa -C" [email protected] "-b 4096"
3. Copiez-collez votre nouvelle clé ssh dans votre référentiel git (gitlab dans mon cas) clés SSH.
Ça marche pour moi !
SOLUTION:
1- Supprimez de "$ HOME/.ssh/known_hosts" la ligne faisant référence à l'hôte auquel il est impossible de se connecter.
2- exécutez cette commande: ssh-keygen -R "IP_ADDRESSorHOSTNAME" (remplacez "IP_ADDRESSorHOSTNAME" par l'adresse IP ou le nom d'hôte de destination).
3- Réessayer la connexion SSH (si elle échoue, veuillez vérifier l’autorisation sur le répertoire .ssh, elle doit être 700)