De afgelopen maand heb ik besloten om de server waar Our Code World momenteel gehost wordt te upgraden naar een echt betere server. Zoals ik altijd doe, kocht ik de nieuwe server en begon deze te configureren om de oude servergegevens te migreren. Na een tijdje ging ik naar het administratie paneel van de server op hun website om het oude root key bestand te verwijderen en ik merkte dat het datacenter waar de server was gevestigd niet in Amerika was, maar in Frankrijk. Het gekozen datacenter was verkeerd, dus vroeg ik een nieuwe server aan in Amerika. Na de implementatie, installeerde ik het nieuwe besturingssysteem, maar ik installeerde de verkeerde versie van Ubuntu (16 in plaats van 18.04), dus ik veegde de server opnieuw schoonð¤£. Nadat ik eindelijk gecontroleerd had dat ik de juiste versie van Ubuntu had geinstalleerd, probeerde ik toegang te krijgen tot de server via SSH, tot mijn verbazing kreeg ik weer een foutmelding:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 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.
Het probleem wordt veroorzaakt doordat u verbinding maakt met een server waar u eerder verbinding mee had, maar waarvan de RSA host is veranderd sinds de laatste keer dat u verbinding maakte (ik maakte verbinding met de eerste versie van de server met Ubuntu 16.04 en probeerde vervolgens verbinding te maken met dezelfde server met Ubuntu 18.04 en de uitzondering kwam naar boven). Om een inbreuk op de beveiliging te voorkomen, moet u deze sleutel verwijderen uit het known_hosts
bestand van uw lokale machine om een goede verbinding te maken.
A. Manueel de overtredende sleutel verwijderen
Wel, het verwijderen van het known_hosts bestand is een geldige oplossing zolang u er niet om geeft om iedere keer dat u verbinding maakt met een of andere server te moeten bevestigen dat de vingerafdruk geldig is, dus verwijder het known_hosts
bestand niet. De gemakkelijkste oplossing is om eenvoudigweg de lijn met het probleem in het bestand te verwijderen, in ons geval waarschuwde de uitzonderingsboodschap ons dat de overtredende sleutel in lijn #5 staat:
Add correct host key in /root/.ssh/known_hosts to get rid of this message.Offending key in /root/.ssh/known_hosts:5
Dus zou u enkel ofwel de lijn moeten verwijderen, met een enkel commando zoals dit (vervang 5 door het nummer van uw lijn):
sed -i '5d' ~/.ssh/known_hosts
En dat is het. Als alternatief, wijzig het known_hosts
bestand met een terminal editor zoals nano of vim en verwijder de regel zelf.
B. Gebruik ssh-agent
Als alternatief kunt u de ssh-keygen tool gebruiken om eenvoudig de overtredende sleutel te verwijderen als u de hostnaam/ip weet:
ssh-keygen -R <SERVER_IP_OR_HOSTNAME> -f ~/.ssh/known_hosts
Dit zou ook moeten werken om de waarschuwing te verwijderen die in de terminal verschijnt.
Happy coding ❤️!