Sådan forhindres meddelelser om FJERNVÆRTSIDENTIFIKATION ER ÆNDRET

Er det muligt at forhindre følgende meddelelse om: (FJERNVÆRTSIDENTIFIKATION ER ÆNDRET)

Når kun denne forbindelsessyntaks bruges

 ssh xxx.xxx.xxx.xxx 

eksempel på advarselsmeddelelse:

 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 besked, så renser jeg /root/.ssh/known_hosts

som

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

Jeg var også tænker at indstille kommandoen cp / dev / null /root/.ssh/known_hosts i crontab,

så hver dag kl. 24:00 renser den filen known_hosts (denne løsning mindsker dette problem men løste det ikke )

så denne løsning er ikke så god løsning, fordi brugeren kan få advarselsmeddelelsen på trods af at vi renser filen known_hosts hver dag

måske kan vi gøre noget på / etc / ssh / ssh_config-fil for at forhindre SSH-værtsnøglekontrol?

bemærkning:

Jeg vil ikke bruge følgende metode for at pr hændelse SSH-værtsnøglekontrollen (fordi jeg bruger refleksion / kitt)

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

Jeg insisterer på kun at bruge denne syntaks som

 ssh xxx.xxx.xxx.xxx 

til forbindelse

Kommentarer

  • Kort sagt: don ' t gør det. Læste du overhovedet denne advarsel? Der er en grund til denne advarsel. Og det er for at beskytte dig mod skade ved et MitM-angreb og andre dårlige ting.

Svar

Opdatering: I dag kan du bruge SSH-certifikater , svarende til TLS certifikater. Derefter kan du tilføje en known_hosts -post for at stole på certifikatet i stedet for de enkelte nøgler, og du får aldrig denne besked igen.


Pas på @ 0xC0000022L “s advarsel !

Hvis du ved er værtsnøglen ændret , kan du fjerne den specifikke post fra known_hosts -filen:

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

Dette er meget bedre end at overskrive hele værtsfil (som kun kan gøres med > /root/.ssh/known_hosts).

Hvis du ikke vil bruge ssh kommandolinjemuligheder, jeg tror, at den eneste anden måde at gøre dette på ville være at ændre SSH-koden og kompilere igen. Hvilken du virkelig vil ikke gøre det!

Kommentarer

  • men jeg vil gøre dette automatisk, når brugeren klager over dette, det gør jeg ikke t ønsker at gøre det manuelt
  • Du vil ikke ' t ønsker at gøre det manuelt (removein g known_hosts poster), og du ønsker ikke ' t at gøre det automatisk (ved hjælp af ssh indstillinger). Hvordan vil du gøre det så?
  • @ l0b0 Ved at give en kommandolinjemulighed for at undertrykke funktionen. I nogle miljøer, såsom miljøer til virtuelle maskiner og andre meget dynamiske konfigurationer (især testmiljøer), skifter disse værtsnøgler ofte, og fordi de er på et isoleret netværk, er der lidt sikkerhed at vinde ved at udføre kontrollen. At skulle foretage en ssh-keygen -R hver gang er irriterende. Jeg formoder, at man kunne skrive en shell til ssh, et shell-script, der analyserer destinationsadressen og fjerner nøglen på forhånd, før man overfører mulighederne til ssh, men det ser ud til at være for stort.

Svar

trin 1: fjern defekt nøgle

 ssh-keygen -R 192.168.1.1 

trin 2: tilføj ny nøgle

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

eller afhængigt af din situation

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

Kommentarer

  • -1 til at levere en pistol uden advarsel.
  • @ l0b0 Fair nok din ære!

Svar

Når du opretter forbindelse til virtuelle maskiner eller lignende, skal du ikke gemme nøglerne i første omgang.

Opret en ssh0 alias eller funktion med følgende indhold:

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

På denne måde vil du ikke forurene din ~/.known_hosts fil med affald, og da du bruger en anden kommando, ville der være en psykologisk grænsen mellem den “rigtige” ssh og den, der bruges til at instrumentere en lokal widget.

Et andet nyttigt alias er

alias sshy="ssh -o CheckHostIP=no" 

til når du “opretter forbindelse til en enhed, der ofte skifter IP, som f.eks. en hjemme-router, som internetudbyderen tildeler en anden IP, hver gang den strømcykles.

Kommentarer

  • Perfekt svar på dette!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *