web-dev-qa-db-fra.com

SSH: Comment gérer les éléments manquants: /home/USER/.ssh/known_hosts

J'ai un vieil ordinateur portable que j'utilise pour apprendre Ubuntu Server 12.10. Avant de reformater et d'installer Ubuntu Server, Ubuntu Desktop était utilisé.

Avec Ubuntu Desktop, j’utilisais un domaine hébergé no-ip.com pour accéder à la machine via ssh (aucun problème). Après le reformatage, j'essaie d'utiliser le même domaine no-ip.com pour accéder à la même machine (même adresse IP statique sur le réseau local domestique), mais le message d'erreur suivant s'affiche:

   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 ECDSA key sent by the remote Host is
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX: (Omitted).
Please contact your system administrator.
Add correct Host key in /home/guest/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/guest/.ssh/known_hosts:2
  remove with: ssh-keygen -f "/home/guest/.ssh/known_hosts" -R username.no-ip.org
ECDSA Host key for username.no-ip.org has changed and you have requested strict checking.
Host key verification failed.

Certes, je ne comprends pas grand chose du message d'erreur. Après quelques recherches sur Google, j'ai choisi d'exécuter la commande suivante:

$ ssh-keygen -R {username.no-ip.org}

Ce qui donne l'erreur suivante:

ssh-keygen: /home/jerry/.ssh/known_hosts: No such file or directory

"Invité" comme suggéré dans le message d'erreur, n'y a-t-il pas non plus:

jerry@mediaserver:/home$ tree -a
.
└── jerry
    ├── .bash_history
    ├── .bash_logout
    ├── .bashrc
    ├── .cache
    │   └── motd.legal-displayed
    ├── .config
    │   └── htop
    │       └── htoprc
    └── .profile

Ce qui soulève les questions suivantes: si ce fichier n'existe même pas, quelle est la différence constatée dans le message d'erreur? J'ai peut-être besoin de créer ce fichier?

Merci à tous ceux qui souhaitent travailler avec moi pour résoudre ce problème!

-Jerry

MODIFIER:

Je devrais ajouter que je suis capable de ssh localement en utilisant l'adresse IP assignée localement.

6
jerrycrabb

L'avertissement signifie que l'ID d'hôte a changé (de l'ancienne à la nouvelle installation). C'est bon! Cela fonctionne, vous permettant de savoir que cela a changé ...

Connectez-vous en tant qu'utilisateur non privilégié (pas root) et créez le répertoire caché, /home/jerry/.ssh:

cd; mkdir .ssh; chmod 0700 .ssh

À ce stade, vous pouvez ajouter des hôtes au fichier known_hosts (/home/jerry/.ssh/known_hosts).

Ou, si vous vous connectez en tant qu'invité, faites la même chose que l'utilisateur, l'invité, pas Jerry.

Notez que si vous souhaitez que le répertoire .ssh soit créé pour tous les nouveaux utilisateurs, ajoutez un répertoire .ssh à/etc/skel. Le répertoire/etc/skel contient des fichiers et des répertoires que tous les nouveaux utilisateurs devraient avoir.

Sudo mkdir /etc/skel/.ssh; Sudo chmod 0700 /etc/skel/.ssh

Par la suite, chaque nouvel utilisateur que vous créez aura un répertoire .ssh avec les perms appropriés (0700).

4
user8290