Modul de prevenire a mesajelor despre IDENTIFICAREA GAZTELOR DE LA DISTANȚĂ S-A SCHIMBAT

Este posibil să preveniți următorul mesaj despre: (IDENTIFICAREA GAZDELOR DE LA DISTANȚĂ S-A SCHIMBAT)

Când utilizați numai această sintaxă a conexiunii

 ssh xxx.xxx.xxx.xxx 

exemplu de mesaj de avertizare:

 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. 

de fiecare dată când primesc acest mesaj, apoi curăț /root/.ssh/known_hosts

ca

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

De asemenea, am fost gândindu-mă să setez comanda cp / dev / null /root/.ssh/known_hosts în crontab,

deci în fiecare zi la 24:00 curăță fișierul known_hosts (această soluție scade această problemă dar nu o rezolvă )

deci această soluție nu este o soluție atât de bună, deoarece utilizatorul poate primi mesajul de avertizare, deși curățăm fișierul known_hosts în fiecare zi

poate putem face ceva pe / etc / ssh / ssh_config fișier pentru a preveni verificarea cheii de gazdă SSH?

observație:

Nu vreau să folosesc următoarea metodă pentru a pr verificarea cheii gazdei SSH (pentru că folosesc reflexie / chit)

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

Insist să folosesc doar această sintaxă ca

 ssh xxx.xxx.xxx.xxx 

pentru conexiune

Comentarii

  • Pur și simplu pune: don ' t face asta. Ați citit de fapt acel avertisment? Există un motiv pentru acest avertisment. Și este pentru a vă proteja împotriva rănirii unui atac MitM și a altor lucruri rele.

Răspuns

Actualizare: În zilele noastre puteți utiliza certificate SSH , similar TLS certificate. Apoi, puteți adăuga o intrare known_hosts pentru a avea încredere în certificatul mai degrabă decât în cheile individuale și nu veți mai primi niciodată acest mesaj.


Atenție Avertisment @ 0xC0000022L „!

Dacă știți cheia gazdă s-a schimbat , puteți elimina acea intrare specifică din fișierul known_hosts:

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

Acest lucru este mult mai bun decât suprascrierea completă fișier gazdă (care se poate face doar cu > /root/.ssh/known_hosts).

Dacă nu doriți să utilizați ssh opțiuni din linia de comandă, cred că singura altă modalitate de a face acest lucru ar fi modificarea codului SSH și recompilarea. Pe care chiar nu vreau să fac!

Comentarii

  • dar vreau să fac asta automat, când utilizatorul se plânge de acest lucru, eu nu nu doriți să o faceți manual
  • Nu ' nu doriți să o faceți manual (eliminare g known_hosts intrări) și nu ' nu doriți să o faceți automat (folosind ssh opțiuni). Cum doriți să o faceți atunci?
  • @ l0b0 Oferind o opțiune din linia de comandă pentru a suprima caracteristica. În unele medii, cum ar fi mediile de mașini virtuale și alte configurații foarte dinamice (în special mediile de testare), aceste chei gazdă se schimbă frecvent și, deoarece se află într-o rețea izolată, există puține securități de câștigat făcând verificarea. A fi nevoit să faci un ssh-keygen -R de fiecare dată este enervant. Presupun că s-ar putea scrie un shell pentru ssh, un script shell care analizează adresa de destinație și pre-elimină cheia înainte de a trece opțiunile la ssh, dar acest lucru pare a fi exagerat.

Răspuns

pasul 1: eliminați cheia defectă

 ssh-keygen -R 192.168.1.1 

pasul 2: adăugați o cheie nouă

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

sau în funcție de situația dvs.

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

Comentarii

  • -1 pentru furnizarea unei arme fără avertisment.
  • @ l0b0 Destul de onoare!

Răspuns

Când vă conectați la mașini virtuale aruncabile sau altele, ar trebui să nu stocați cheile în primul rând.

Creați un ssh0 alias sau funcție cu următorul conținut:

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

În acest fel, nu veți polua ~/.known_hosts fișier cu gunoi și, din moment ce utilizați o comandă diferită, ar exista un psihologic graniță între ssh-ul „real” și cel folosit pentru instrumentarea unui widget local.

Un alt alias util este

alias sshy="ssh -o CheckHostIP=no" 

pentru când „se conectează la un dispozitiv care își schimbă frecvent IP-ul, de ex. un router de acasă căruia ISP-ul îi atribuie un IP diferit de fiecare dată când este pornit.

Comentarii

  • Răspuns perfect la acest lucru!

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *