Je fais beaucoup d'échanges par ssh entre les ordinateurs de mon réseau local et mes deux comptes d'hébergement web, et j'ai donc résolu toutes sortes de problèmes avec SSH, y compris des problèmes d'authentification en utilisant la fonction ssh -v
pour voir où et ce qui a mal tourné.
Ayant juste résolu ce problème et n'étant pas satisfait des réponses, je voulais vraiment savoir "pourquoi" moi-même...
Le déclencheur de mon cas est le suivant : j'ai installé un nouveau système d'exploitation au travail et, lors de l'installation du paquet openssh-server, un nouveau jeu de clés d'hôte a été généré sur le serveur du travail. Auparavant, tous mes systèmes d'exploitation de serveur étaient Ubuntu et cette fois-ci, ils ont changé pour Debian (et je soupçonne qu'il y a une différence nuancée dans les permissions).
Lorsque tous les OS étaient Ubuntu et que je réinstalle l'OS d'un serveur, lors de la première connexion SSH, j'obtiens ce type d'avertissement, que je préfère à l'avertissement silencieux ci-dessus !
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
06:ea:f1:f8:db:75:5c:0c:af:15:d7:99:2d:ef:08:2a.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending key in /home/user/.ssh/known_hosts:4
RSA host key for domain.com has changed and you have requested strict checking.
Host key verification failed.
Puis j'ouvre ~/.ssh/known_hosts sur l'ordinateur initiant le ssh, supprimez cette ligne, reconnectez-vous et voilà ce qui se passe :
chris@home ~ $ ssh work
The authenticity of host '[work]:11122 ([99.85.243.208]:11122)' can't be established.
ECDSA key fingerprint is 56:6d:13:be:fe:a0:29:ca:53:da:23:d6:1d:36:dd:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[work]:11122 ([99.85.243.208]:11122)' (ECDSA) to the list of known hosts.
Linux rock 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64
La partie concernant :11122 est le numéro de port à partir duquel je route SSH sur le pare-feu.
J'ai vérifié les sauvegardes d'un ancien serveur Ubuntu et les ai comparées à ma nouvelle installation Debian :
Ubuntu: Debian:
# Package generated configuration file # Package generated configuration file
# See the sshd(8) manpage for details # See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for # What ports, IPs and protocols we listen for
Port 22 Port 22
# Use these options to restrict which interface # Use these options to restrict which interfaces
#ListenAddress :: #ListenAddress ::
#ListenAddress 0.0.0.0 #ListenAddress 0.0.0.0
Protocol 2 Protocol 2
# HostKeys for protocol version 2 # HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_dsa_key
------------------------------------------------ HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security #Privilege Separation is turned on for security
UsePrivilegeSeparation yes UsePrivilegeSeparation yes
Donc oui, il est probable que l'hôte a commencé à utiliser des clés ecdsa récemment, ce que je mettrais sur le compte d'une mise à jour, compte tenu des changements récents d'Ubuntu. Le fait qu'Ubuntu s'éloigne du système d'exploitation linux solide comme le roc sur lequel je comptais est la raison pour laquelle j'ai installé Debian cette fois-ci.
J'ai lu un sécurité.SE q/a sur ecdsa et j'ai déjà supprimé cette ligne de sshd_config
mon nouveau serveur Debian. (et j'ai exécuté service ssh restart
)
0 votes
Dans mon cas, je change le serveur(ip) bind avec le domaine, puis la
The ECDSA host key for server has changed
. Ma méthode consiste à supprimer la chaîne de cache relative au domaine dans le dossier de l'utilisateur.~/.ssh/known_hosts
. Ensuite, le ssh fonctionne.0 votes
J'ai sauvegardé le fichier .ssh/known_hosts et je l'ai laissé se recréer.