Il mese scorso, ho deciso di aggiornare il server dove è attualmente ospitato Our Code World per un server veramente migliore. Come faccio sempre, ho acquistato il nuovo server e ho iniziato a configurarlo per migrare i dati del vecchio server. Dopo un po’, sono andato nel pannello di amministrazione del server nel loro sito web per rimuovere il vecchio file root key e ho notato che il datacenter dove si trovava il server non era in America, ma in Francia. Il datacenter scelto era sbagliato, così ho richiesto un nuovo server in America. Dopo il deployment, ho installato il nuovo sistema operativo, ma ho installato la versione sbagliata di Ubuntu (16 invece di 18.04), così ho cancellato ancora una volta il serverð¤£. Dopo aver controllato finalmente che tutto ciò che ho installato sia la versione giusta di Ubuntu, ho provato ad accedere al server via SSH, per la mia sorpresa ancora una volta, mi sono ritrovato con un altro errore:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 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 isXX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XXPlease contact your system administrator.Add correct host key in /root/.ssh/known_hosts to get rid of this message.Offending key in /root/.ssh/known_hosts:5RSA host key for :22 has changed and you have requested strict checking.Host key verification failed.
Il problema è causato dal fatto che ti stai connettendo ad un server a cui eri precedentemente connesso, ma il cui host RSA è cambiato dall’ultima volta che ti sei connesso ad esso (mi sono connesso alla prima versione del server con Ubuntu 16.04 e poi ho provato a connettermi allo stesso server con Ubuntu 18.04 e si è presentata l’eccezione). Al fine di prevenire qualsiasi violazione della sicurezza, è necessario rimuovere questa chiave dal file known_hosts
della vostra macchina locale al fine di connettersi correttamente.
A. Rimuovere manualmente la chiave incriminata
Ebbene, eliminare il file known_hosts è una soluzione valida finché non vi interessa dover confermare ogni volta che vi collegate a qualche server che l’impronta digitale è valida, quindi non eliminate il file known_hosts
. La soluzione più semplice è quella di rimuovere semplicemente la linea con il problema sul file, nel nostro caso il messaggio di eccezione ci ha avvertito che la chiave incriminata è nella linea #5:
Add correct host key in /root/.ssh/known_hosts to get rid of this message.Offending key in /root/.ssh/known_hosts:5
Quindi avreste solo bisogno o di rimuovere la linea, usando un singolo comando come questo (sostituite 5 con il numero della vostra linea):
sed -i '5d' ~/.ssh/known_hosts
E questo è quanto. In alternativa, modificate il file known_hosts
usando un editor di terminale come nano o vim e rimuovete la linea da soli.
B. Usando ssh-agent
In alternativa, puoi usare lo strumento ssh-keygen per rimuovere semplicemente la chiave incriminata se conosci l’hostname/ip:
ssh-keygen -R <SERVER_IP_OR_HOSTNAME> -f ~/.ssh/known_hosts
Questo dovrebbe funzionare anche per rimuovere l’avviso dalla visualizzazione nel terminale.
Buona codifica ❤️!