Hvordan forhindre meldingene om FJERNVARENTIDENTIFIKASJON ER ENDRET

Er det mulig å forhindre følgende melding om: (FJERNVARENTIDENTIFIKASJON ER ENDRET)

Når du bare bruker denne tilkoblingssyntaksen

 ssh xxx.xxx.xxx.xxx 

eksempel på advarsel:

 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. 

hver gang jeg får denne meldingen, så rengjør jeg /root/.ssh/known_hosts

som

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

jeg var også tenker å sette kommandoen cp / dev / null /root/.ssh/known_hosts i crontab,

så det rengjør filen known_hosts hver dag klokken 24 (denne løsningen reduserer dette problemet, men løser det ikke )

slik at denne løsningen ikke er så god løsning fordi brukeren kan få advarselen til tross for at vi renser filen known_hosts hver dag

kanskje vi kan gjøre noe på / etc / ssh / ssh_config-fil for å forhindre SSH-vertsnøkkelkontroll?

bemerkning:

Jeg vil ikke bruke følgende metode for å pr hendelse SSH vertsnøkkel sjekker (fordi jeg bruker refleksjon / kitt)

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

Jeg insisterer på å bare bruke denne syntaksen som

 ssh xxx.xxx.xxx.xxx 

for tilkobling

Kommentarer

  • Enkelt sagt: don ' t gjør det. Leste du faktisk advarselen i det hele tatt? Det er en grunn til denne advarselen. Og det er for å beskytte deg mot skade fra et MitM-angrep og andre dårlige ting.

Svar

Oppdatering: I dag kan du bruke SSH-sertifikater , lik TLS sertifikater. Deretter kan du legge til en known_hosts oppføring for å stole på sertifikatet i stedet for de enkelte nøklene, og du får aldri denne meldingen igjen.


Ta hensyn til @ 0xC0000022L «s advarsel !

Hvis du vet vertsnøkkelen er endret , kan du fjerne den spesifikke oppføringen fra known_hosts -filen:

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

Dette er mye bedre enn å overskrive hele vertsfil (som kan gjøres med bare > /root/.ssh/known_hosts).

Hvis du ikke vil bruke ssh kommandolinjealternativer, jeg tror den eneste andre måten å gjøre dette på ville være å endre SSH-koden og kompilere på nytt. Som du virkelig ikke vil gjøre!

Kommentarer

  • men jeg vil gjøre dette automatisk, når brukeren klager på dette, vil jeg ikke t vil gjøre det manuelt
  • Du vil ikke ' t vil gjøre det manuelt (removein g known_hosts oppføringer), og du vil ikke ' ikke vil gjøre det automatisk (ved hjelp av ssh alternativer). Hvordan vil du gjøre det da?
  • @ l0b0 Ved å gi et kommandolinjealternativ for å undertrykke funksjonen. I noen miljøer, for eksempel virtuelle maskinmiljøer og andre svært dynamiske konfigurasjoner (spesielt testmiljøer), endres disse vertsnøklene ofte, og fordi de er i et isolert nettverk, er det lite sikkerhet å oppnå ved å utføre kontrollen. Å måtte gjøre en ssh-keygen -R hver gang er irriterende. Jeg antar at man kan skrive et skall for ssh, et skallskript som analyserer destinasjonsadressen og fjerner nøkkelen før man overfører alternativer til ssh, men dette virker som for mye.

Svar

trinn 1: fjern feil nøkkel

 ssh-keygen -R 192.168.1.1 

trinn 2: legg til ny nøkkel

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

eller avhengig av situasjonen din

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

Kommentarer

  • -1 for å levere en pistol uten advarsel.
  • @ l0b0 Greit nok din ære!

Svar

Når du kobler til kaste virtuelle maskiner eller slike, bør du ikke lagre nøklene i utgangspunktet.

Opprett en ssh0 alias eller funksjon med følgende innhold:

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

På denne måten vil du ikke forurense ~/.known_hosts fil med søppel, og siden du bruker en annen kommando, ville det være en psykologisk grensen mellom den «virkelige» ssh og den som brukes til å instrumentere en lokal widget.

Et annet nyttig alias er

alias sshy="ssh -o CheckHostIP=no" 

for når du «kobler til en enhet som endrer IP ofte, som f.eks. en hjemmerouter som Internett-leverandøren tildeler en annen IP hver gang den blir slått på.

Kommentarer

  • Perfekt svar på dette!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *