sviluppo-web-qa.it

Come rimuovere il controllo rigoroso della chiave RSA in SSH e qual è il problema qui?

Ho un server Linux che ogni volta che mi connetto mi mostra il messaggio che ha cambiato la chiave dell'host SSH:

$ ssh root @ Host1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @ ATTENZIONE: L'IDENTIFICAZIONE DELL'host REMOTO È CAMBIATA! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ IT IS POSSIBILE CHE QUALCUNO IS STA FACENDO QUALCOSA DI NASTRO! Qualcuno potrebbe starti origliando proprio ora (man-in -the-middle attack)! È anche possibile che la chiave RSA Host sia stata appena modificata. L'impronta digitale per la chiave RSA inviata dall'host remoto è 93: a2: 1b: 1c: 5f: 3e: 68: 47: bf : 79: 56: 52: f0: ec: 03: 6b. Contatta l'amministratore di sistema. Aggiungi la chiave host corretta in /home/emerson/.ssh/known_hosts per eliminare questo messaggio. Chiave offensiva in/home/emerson/.ssh/known_hosts: 377

La chiave RSA Host per Host1 è stata modificata e hai richiesto un controllo rigoroso. Verifica chiave host non riuscita.

Mi tiene per pochi secondi connesso e quindi chiude la connessione.

Host1: ~/.ssh # Lettura dall'host host host1: Connessione reimpostata dal peer Connessione all'Host1 chiusa.

Qualcuno sa cosa sta succedendo e cosa potrei fare per risolvere questo problema?

45
setatakahashi

Si prega di non eliminare l'intero file known_hosts come consigliato da alcune persone, questo annulla completamente il punto dell'avvertimento. È una funzione di sicurezza che ti avverte che potrebbe essersi verificato un uomo nel mezzo dell'attacco.

Ti suggerisco di identificare il motivo per cui pensa che qualcosa sia cambiato, molto probabilmente un aggiornamento SSH ha modificato le chiavi di crittografia a causa di una possibile falla nella sicurezza. È quindi possibile eliminare quella riga specifica dal file known_hosts:

sed -i 377d ~/.ssh/known_hosts

Questo d elimina la linea 377 come mostrato dopo i due punti nell'avvertimento:

/home/emerson/.ssh/known_hosts:377

In alternativa è possibile rimuovere la chiave pertinente procedendo come segue

ssh-keygen -R 127.0.0.1 (obviously replace with the server's IP)

Si prega di NON eliminare l'intero file e assicurarsi che questo sia effettivamente il computer a cui si desidera connettersi prima di eliminare la chiave specifica.

71
Adam Gibbins

Penso che sebbene alcune delle risposte qui affrontino la linea d'azione raccomandata nella domanda del PO, non risponde pienamente alla domanda.

La domanda afferma "Come rimuovere il controllo rigoroso della chiave RSA in SSH e qual è il problema qui?"

Il problema qui è, come consigliato da altri, una modifica nell'host probabilmente dovuta alla reinstallazione del server (scenario più comune). E la soluzione consigliata è infatti quella di rimuovere la chiave offensiva dal file .ssh/authorized_keys con un sed inline.

Tuttavia non ho visto alcuna risposta indirizzare la parte specifica della domanda "Come rimuovere il controllo rigoroso della chiave RSA in SSH".

Puoi rimuovere StrictHostKey controllando il tuo file di configurazione ssh, generalmente archiviato in ~/.ssh/config.

Di seguito viene fornito un esempio di blocco host:

Host 101
  HostName yourip|hostname
  User youruserid
  IdentityFile /path/to/keyfile
  Port 22
  StrictHostKeyChecking no

La riga specificamente aggiunta è l'ultima StrictHostKeyChecking no che fa proprio quello. A seconda del tuo scenario specifico, ciò può esserti utile, ad esempio l'esecuzione di più contenitori virtualizzati su un server dedicato, su pochi ips, l'arresto e l'avvio di un'altra istanza sullo stesso IP.

27
Joel G Mathew

Un altro modo per rimuovere StrictHostKeyChecking, quando è necessario farlo solo per un singolo server:

ssh <server> -o StrictHostKeyChecking=no
11
Greg Dougherty

Prima di tutto, questa è la tua macchina? Hai modificato consapevolmente le chiavi dell'host? Altrimenti sarei molto preoccupato che qualcosa abbia alterato quei dati.

In secondo luogo, attiva il debug di ssh,

ssh -vvv [email protected]

e vedi cosa ti dice, prova anche a cercare,/var/log/secure e/var/log/messaggi sul server a cui stai provando a connetterti per indizi, sshd dà buoni messaggi di errore.

In terzo luogo, questa macchina è connessa a Internet? Dovresti davvero consentire l'accesso root?

5
Dave Cheney

Come "Host" [ampiamente definito, potrebbe essere qualsiasi cosa, da una reinstallazione/avvio multiplo a un computer completamente diverso con un indirizzo IP a cui ti sei connesso prima, ad esempio] sembra che il client ssh sia cambiato, ti sta dando il errore.

Non è necessario disattivare un controllo rigoroso, né è sensata la cancellazione all'ingrosso delle chiavi salvate.

È possibile avere due chiavi diverse elencate in known_hosts per un determinato nome host o indirizzo IP; dandoti 2 alternative a seconda che tu pensi di aver bisogno della chiave 'vecchia' che è attualmente memorizzata in known_hosts

Eliminare la chiave particolare a cui si riferisce, in l377 di known_hosts per l'OP, oppure mantenere entrambi

Il modo più semplice per conservare entrambi, evitando la cancellazione delle chiavi in ​​known_hosts, è

  1. Modifica known_hosts per aggiungere # all'inizio della voce "precedente" a cui si fa riferimento in known_hosts [@ l377] temporaneamente
  2. Connetti [ssh all'host], accetta il prompt per aggiungere la nuova chiave "automaticamente"
  3. Quindi modificare di nuovo known_hosts per rimuovere #

più risposte su "Aggiungi la chiave host corretta in known_hosts"/più chiavi host ssh per nome host?

3
Mark

Lo stai ottenendo perché qualcosa è cambiato (come nuova scheda NIC, nuovo IP, modifica sul software del server, ecc.). Il focus sulla sicurezza ha un articolo di Nizza su protezione chiave host SSH .

Basta rimuovere la chiave (usando SFTP o simili) dal server, modificando il $HOME/.ssh/known_hosts file e accetta quello nuovo alla prossima connessione.

È possibile che la connessione venga interrotta a causa dell'impostazione StrictHostKeyChecking. Vedi questa discussione per un problema simile.

3
user1797