I ssh finns konfigurationsalternativet StrictHostKeyChecking
vars standardvärde i Ubuntu är satt til. ask. Detta gör att när man ansluter till en ssh-server för första gången så kommer man att få frågan om man vill spara serverns nyckel i ~/.ssh/known_hosts. Om det å andra sidan redan finns en post i den filen för servern med en nyckel som inte stämmer med den som servern skickar så kommer ssh att anta att det är ett intrångsförsök och vägra ansluta och istället lämna följande felmeddelande:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 23:00:21:33:d4:0f:95:f1:eb:34:b2:57:cf:3f:2c:e7. 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:8 RSA host key for example.com has changed and you have requested strict checking. Host key verification failed.
Om man vet varför nyckeln har ändrats så kan man ta bort den gamla nyckeln från known_hosts på ett enkelt sätt genom kommandot
$ ssh-keygen -R värdnamn
Det går även att redigera filen manuellt om man så önskar detta, eller göra det med andra verktyg [2].
När man sedan ansluter till servern på nytt så får man då fråga om man vill spara den nya nyckeln.
Referenser
- http://gablog.eu/online/node/35
- http://www.thegeekstuff.com/2010/04/how-to-fix-offending-key-in-sshknown_hosts-file/
En tanke på “Ta bort nycklar i .ssh/known_hosts”