Hur man förhindrar meddelandena om FJÄRRVÄRDIDENTIFIKATION HAR ÄNDRAT

Är det möjligt att förhindra följande meddelande om: (FJÄRRVÄRDIDENTIFIKATION HAR ÄNDRAT)

När endast denna anslutningssyntax används

 ssh xxx.xxx.xxx.xxx 

exempel på varningsmeddelande:

 ssh 10.19.11.1 CentOS release 5.8 (Final) Kernel 2.6.18-308.el5 on an i686 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 dd:6f:32:8f:8f:8c:70:9c:95:f1:48:83:60:97:cc:ed. Please 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:7 RSA host key for 10.19.11.1 has changed and you have requested strict checkin. Host key verification failed. 

varje gång jag får detta meddelande rensar jag /root/.ssh/known_hosts

som

 cp /dev/null /root/.ssh/known_hosts 

Jag var också funderar på att ställa in kommandot cp / dev / null /root/.ssh/known_hosts i crontab,

så varje dag klockan 24:00 rensar den filen known_hosts (den här lösningen minskar problemet men löste det inte )

så att den här lösningen inte är så bra lösning eftersom användaren kan få varningsmeddelandet trots att vi rengör kända_hosts-filen varje dag

kanske vi kan göra något på / etc / ssh / ssh_config-fil för att förhindra SSH-värdnyckelkontroll?

anmärkning:

Jag vill inte använda följande metod för att pr händelse SSH-värdnyckel kontrollerar (eftersom jag använder reflektion / kitt)

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] 

Jag insisterar på att endast använda denna syntax som

 ssh xxx.xxx.xxx.xxx 

för anslutning

Kommentarer

  • Enkelt uttryckt: don ' t gör det. Läste du faktiskt den varningen alls? Det finns en anledning till denna varning. Och det är för att skydda dig från skada av en MitM-attack och andra dåliga saker.

Svar

Uppdatering: Numera kan du använda SSH-certifikat , liknande TLS certifikat. Sedan kan du lägga till en known_hosts -post för att lita på certifikatet istället för de enskilda nycklarna, och du får aldrig detta meddelande igen.


Varning @ 0xC0000022L ”s varning !

Om du vet har värdnyckeln ändrats kan du ta bort den specifika posten från known_hosts -filen:

ssh-keygen -R xxx.xxx.xxx.xxx 

Detta är mycket bättre än att skriva över hela värdfil (som kan göras med bara > /root/.ssh/known_hosts).

Om du inte vill använda ssh kommandoradsalternativ, jag tror att det enda andra sättet att göra detta skulle vara att ändra SSH-koden och kompilera om. Vilket du verkligen vill inte göra!

Kommentarer

  • men jag vill göra detta automatiskt, när användaren klagar över det, jag inte t vill göra det manuellt
  • Du vill inte ' t vill göra det manuellt (ta bort g known_hosts poster), och du vill inte ' göra det automatiskt (med ssh alternativ). Hur vill du göra det då?
  • @ l0b0 Genom att ge ett kommandoradsalternativ för att undertrycka funktionen. I vissa miljöer, till exempel virtuella maskinmiljöer och andra mycket dynamiska konfigurationer (särskilt testmiljöer), ändras dessa värdnycklar ofta och eftersom de finns i ett isolerat nätverk finns det liten säkerhet att vinna genom att göra kontrollen. Att behöva göra en ssh-keygen -R varje gång är irriterande. Jag antar att man kan skriva ett skal för ssh, ett skalskript som analyserar destinationsadressen och tar bort nyckeln innan man skickar alternativ till ssh, men det verkar vara för mycket.

Svara

steg 1: ta bort felaktig nyckel

 ssh-keygen -R 192.168.1.1 

steg 2: lägg till ny nyckel

 ssh-keyscan 192.168.1.1 >> ~/.ssh/known_hosts 

eller beroende på din situation

 > ~/.ssh/known_hosts ssh-keyscan 192.168.1.1 192.168.1.2 ... >> ~/.ssh/known_hosts 

Kommentarer

  • -1 för att tillhandahålla en pistol utan varning.
  • @ l0b0 Rättvis din ära!

Svar

När du ansluter till bortkastade virtuella maskiner eller sådant bör du inte lagra nycklarna i första hand.

Skapa en ssh0 alias eller funktion med följande innehåll:

alias ssh0="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR" 

På detta sätt förorenar du inte din ~/.known_hosts fil med sopor, och eftersom du använder ett annat kommando skulle det finnas en psykologisk gränsen mellan den ”riktiga” ssh och den som används för att instrumentera någon lokal widget.

Ett annat användbart alias är

alias sshy="ssh -o CheckHostIP=no" 

för när du ”ansluter till en enhet som ändrar sin IP ofta, som t.ex. en hemrouter till vilken ISP tilldelar en annan IP varje gång den slås på.

Kommentarer

  • Perfekt svar på detta!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *