Robię dużo sshing między moimi komputerami LAN i moimi dwoma kontami hostingowymi, więc uporządkowałem wszelkiego rodzaju szanse i kończy się na SSH, w tym problemy z uwierzytelnianiem, ssh -v
aby zobaczyć, gdzie i co poszło źle.
Właśnie rozwiązałem ten problem i nie jestem zadowolony z odpowiedzi, chciałem naprawdę wiedzieć, „dlaczego” sam…
Wyzwalaczem w moim przypadku jest: zainstalowany nowy system operacyjny serwera w pracy, a po zainstalowaniu pakietu openssh-server na serwerze roboczym wygenerowano nowy zestaw kluczy hosta. Wcześniej wszystkie moje systemy operacyjne serwera były Ubuntu i tym razem zmieniły się na Debian (i podejrzewam, że istnieje niuansowa różnica w uprawnieniach).
Kiedy wszystkie systemy operacyjne były Ubuntu i ponownie instaluję system operacyjny serwera, po pierwszym SSH dostaję tego rodzaju ostrzeżenie, które wolę niż ciche ostrzeżenie powyżej!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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.
Następnie otwieram się ~/.ssh/known_hostsna komputerze inicjując ssh, usuwam ten wiersz, ponownie się łączy i tak się dzieje:
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
Ten kawałek około: 11122 to numer portu, z którego kieruję SSH na zaporze
Sprawdziłem kopie zapasowe z poprzedniego serwera Ubuntu i różniłem się od mojej nowej instalacji 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
Więc tak, prawdopodobnie host zaczął ostatnio używać kluczy ecdsa, co w oparciu o zmiany Ubuntu ostatnio, winiłbym za aktualizację. Odejście Ubuntu od solidnego systemu Linux, na który liczyłem, spowodowało, że tym razem zainstalowałem Debiana.
Przeczytałem q.a security.SE na ecdsa i już usunąłem ten wiersz z sshd_config
mojego nowego serwera Debian. (i pobiegł service ssh restart
)
The ECDSA host key for server has changed
. Moim sposobem jest usunięcie powiązanego ciągu pamięci podręcznej o domenie w~/.ssh/known_hosts
. Następnie działa ssh.