Ich arbeite viel zwischen meinen LAN-Computern und meinen beiden Webhosting-Konten. Daher habe ich alle möglichen Probleme mit SSH gelöst, einschließlich Authentifizierungsproblemen, ssh -v
um festzustellen, wo und was schief gelaufen ist.
Nachdem ich dieses Problem gerade gelöst hatte und mit den Antworten nicht zufrieden war, wollte ich wirklich wissen, "warum" ich selbst ...
Der Auslöser für meinen Fall ist: Installiertes neues Server-Betriebssystem bei der Arbeit und nach der Installation von openssh-server package wurde ein neuer Satz von Hostschlüsseln auf dem Server von work generiert. Zuvor waren alle meine Server-Betriebssysteme Ubuntu und dieses Mal wurde es auf Debian geändert (und ich vermute, dass es einen nuancierten Unterschied in den Berechtigungen gibt).
Wenn alle Betriebssysteme Ubuntu waren und ich das Betriebssystem eines Servers neu installiere, erhalte ich beim ersten SSH diese Art von Warnung, die ich der stillen Warnung oben vorziehe!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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.
Dann öffne ich ~/.ssh/known_hostsauf dem Computer die ssh, lösche diese Zeile, stelle die Verbindung wieder her und das passiert:
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
Das bisschen über: 11122 ist die Portnummer, von der ich SSH auf der Firewall route
Ich habe die Backups von einem früheren Ubuntu-Server überprüft und mich von meiner neuen Debian-Installation unterschieden:
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
Also ja, wahrscheinlich hat der Host in letzter Zeit angefangen, Ecdsa-Schlüssel zu verwenden. Aufgrund der Änderungen von Ubuntu in letzter Zeit würde ich ein Update dafür verantwortlich machen. Ubuntus Abkehr von dem absolut soliden Linux-Betriebssystem, mit dem ich gerechnet habe, ist der Grund, warum ich dieses Mal Debian installiert habe.
Ich habe eine security.SE-Frage / Antwort auf ecdsa gelesen und diese Zeile bereits von sshd_config
meinem neuen Debian-Server entfernt. (und rannte service ssh restart
)
The ECDSA host key for server has changed
. Mein Weg ist es, die zugehörige Cache-Zeichenfolge über Domain in zu entfernen~/.ssh/known_hosts
. Dann funktioniert der ssh.