I den sidste måned besluttede jeg at opgradere den server, hvor Our Code World i øjeblikket er hostet, til en virkelig bedre server. Som jeg altid gør, købte jeg den nye server og begyndte at konfigurere den for at migrere data fra den gamle server. Efter et stykke tid gik jeg ind på serverens administrationspanel på deres hjemmeside for at fjerne den gamle root key-fil, og jeg bemærkede, at datacenteret, hvor serveren var placeret, ikke var i Amerika, men i Frankrig. Det valgte datacenter var forkert, så jeg anmodede om en ny server i Amerika. Efter udrulningen installerede jeg det nye operative system, men jeg installerede den forkerte version af Ubuntu (16 i stedet for 18.04), så jeg tørrede endnu en gang serverenð¤£. Efter endelig at have kontrolleret alt, at jeg installerede den rigtige version af Ubuntu, prøvede jeg at få adgang til serveren via SSH, til min overraskelse endte jeg endnu engang med en anden fejl:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 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.
Problemet skyldes, at du opretter forbindelse til en server, som du tidligere har været tilsluttet, men hvis RSA-vært er ændret siden sidste gang du tilsluttede dig den (jeg tilsluttede mig den første version af serveren med Ubuntu 16.04 og forsøgte derefter at tilslutte mig den samme server med Ubuntu 18.04, og undtagelsen dukkede op). For at undgå sikkerhedsbrud skal du fjerne denne nøgle fra known_hosts
-filen på din lokale maskine for at kunne oprette forbindelse korrekt.
A. Fjern den ulovlige nøgle manuelt
Det er en gyldig løsning at slette filen known_hosts, så længe du er ligeglad med at skulle bekræfte, hver gang du opretter forbindelse til en eller anden server, at fingeraftrykket er gyldigt, så du skal ikke slette filen known_hosts
. Den nemmeste løsning er blot at fjerne linjen med problemet i filen, i vores tilfælde advarede undtagelsesmeddelelsen os om, at den ulovlige nøgle er i linje #5:
Add correct host key in /root/.ssh/known_hosts to get rid of this message.Offending key in /root/.ssh/known_hosts:5
Så du behøver kun enten at fjerne linjen, ved hjælp af en enkelt kommando som denne (erstat 5 med nummeret på din linje):
sed -i '5d' ~/.ssh/known_hosts
Og det er det. Alternativt kan du ændre filen known_hosts
ved hjælp af en terminaleditor som nano eller vim og selv fjerne linjen.
B. Brug af ssh-agent
Alternativt kan du bruge værktøjet ssh-keygen til blot at fjerne den ulovlige nøgle, hvis du kender værtsnavnet/ip’en:
ssh-keygen -R <SERVER_IP_OR_HOSTNAME> -f ~/.ssh/known_hosts
Det burde også virke for at fjerne advarslen fra at blive vist i terminalen.
Happy coding ❤️!