Wat betekent hostsleutelverificatie mislukt?

What Does Host Key Verification Failed Mean



Tijdens het gebruik van de ssh-server is een van de veelvoorkomende fouten die u tegenkomt: Verificatie van hostsleutel mislukt . Laten we, om te begrijpen waarom deze fout optreedt, eerst begrijpen hoe ssh een verbinding tot stand brengt.

Wanneer u probeert verbinding te maken met een externe server, vraagt ​​de server u om te bevestigen of u verbinding probeert te maken met de juiste server.









Als je typt Ja , zal de client de openbare hostsleutel toevoegen aan de .ssh/bekende_hosts het dossier. Zodra de sleutel van de externe server is toegevoegd, zal de client de volgende keer dat u probeert verbinding te maken met dezelfde server de sleutels vergelijken met de sleutels die zijn opgeslagen in de bekende_hosts het dossier.



U krijgt geen waarschuwing als de sleutel aanwezig is in de bekende_hosts het dossier. De server wordt direct verbonden.





Waarom de verificatie van de hostsleutel is mislukt Fout treedt op

De belangrijkste reden dat de fout bij de verificatie van de hostsleutel is mislukt, is dat de externe hostsleutel is gewijzigd en niet meer hetzelfde is als opgeslagen in de bekende_hosts het dossier. De sleutel verandert meestal wanneer servers opnieuw worden opgebouwd en u krijgt een foutmelding zoals hieronder weergegeven:



Hoe de te repareren Verificatie van hostsleutel mislukt Fout

Om deze fout op te lossen, moeten we de aanstootgevende sleutel verwijderen uit de bekende_hosts bestand aanwezig in ons systeem in .ssh map. De fout geeft u het IP-adres van de externe server en het regelnummer waarop de sleutel is opgeslagen in de bekende_hosts het dossier.

In de bovenstaande fout, /home/user/.ssh/known_hosts:7 , de : 7 is het beledigende regelnummer. Hieronder vindt u meerdere manieren om deze fout op te lossen:

Methode 1:

De eerste methode om deze fout op te lossen is met behulp van de sed opdracht. De sed commando wordt gebruikt om de tekstbestanden te wijzigen om iets uit de bestanden te zoeken, toe te voegen of te verwijderen. We gebruiken het om de overtredende host te verwijderen:

$sed -l '7d'~.ssh/bekende_hosts

Waar 7 is het regelnummer dat wordt weergegeven in de bovenstaande fout, uw regelnummer kan anders zijn; zorg ervoor dat u het juiste regelnummer gebruikt. De opdracht verwijdert de aanstootgevende regel uit de bekende_hosts bestand en los het probleem op.

Methode 2:

De tweede benadering is het openen van de bekende_hosts bestand in een willekeurige editor:

$nano.ssh/bekende_hosts

En verwijder handmatig de gewraakte regel en sla het bestand op.

Methode 3:

De derde methode is het verwijderen van de server met behulp van de ssh-keygen opdracht. Volg de onderstaande syntaxis:

$ssh-keygen -R [IP ADRES]

Om bijvoorbeeld de hostsleutel van te verwijderen 192.168.10.116 , gebruik maken van:

$ssh-keygen -R192.168.10.116

Conclusie

De hostsleutelverificatiefout treedt op wanneer de sleutel van de externe server verandert en de client deze niet verifieert met de opgeslagen sleutels. Serversleutels worden opgeslagen in de bekende_hosts bestand aan de clientzijde, en bij het tot stand brengen van de verbinding verifieert de client de sleutel door deze te vergelijken met de sleutels die zijn opgeslagen in de bekende_host bestand en als het niet lukt, krijg je een Verificatie van hostsleutel mislukt fout.

Om dit te corrigeren, verwijdert u de overtredende host uit de bekende_hosts het dossier. Deze gids noemde drie verschillende methoden om de overtredende host te verwijderen en elke methode kan worden gebruikt om deze fout op te lossen.