Come faccio a sapere che una nuova chiave host è sicura da accettare?

3

Ricevo spesso server per la gestione temporanea e lo sviluppo. Mi collego a loro con SSH per il provisioning.

Durante il processo, distruggerò una VM, la ricostruirò e la eseguirò di nuovo con il nuovo script.

Un piccolo problema che ho è che il mio computer locale memorizza la vecchia chiave host e mi avverte che è stata modificata per il nome host o IP dopo che è stata ricostruita.

Questo è previsto e una buona cosa. Ma irritante.

Quindi devo ssh-keygen -R dell'impronta digitale locale e provare a connetterti di nuovo per chiedergli di accettarne uno nuovo.

Questo è noioso. Così ho guardato e ho imparato che posso impostare alcune opzioni ssh come ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

Questo risolve il problema del mio flusso di lavoro, ma mi ha fatto chiedere quanto fosse sicuro l'intero processo.

Se accetto ciecamente ogni impronta digitale che un nuovo server mi invia, sto riducendo al minimo il potenziale di attacco dell'Uomo nel mezzo credendo ciecamente solo una volta e poi mi aspetto che sia lo stesso da lì in poi?

Oppure, oltre a far passare le chiavi del server attraverso un altro canale prima di connetterti la prima volta, c'è un modo per chiudere quel buco e sapere che l'impronta che sto ricevendo proviene effettivamente dal server che intendo?

    
posta shanemgrey 08.11.2015 - 06:05
fonte

2 risposte

3

Un paio di possibilità:

  • Backup e ripristino delle chiavi. Uso uno script per eseguire il backup di chiavi pubbliche e private in un file di archivio crittografato (tar.bz2) su un server locale su rsync.
  • Utilizzare un set di chiavi private e riutilizzarle attraverso i sistemi - probabilmente non è una buona idea a meno che l'area non sia protetta e le possibilità di MITM siano ridotte.
  • Utilizzare chiavi firmate da un certificato attendibile (ad esempio link )
  • Infine, è possibile utilizzare un sistema di gestione delle chiavi o persino uno script per estrarre le impronte digitali dei tasti da un server centrale prima di tentare la connessione. Non l'ho mai provato da solo, ma ho una sovrascrittura di script per gestire altre cose su SSH. Invece di utilizzare direttamente SSH, utilizzo questo script con alias per connettersi all'host di destinazione.
risposta data 08.11.2015 - 07:41
fonte
0

Oltre all'altra risposta, esiste un tipo speciale di record DNS in grado di memorizzare l'impronta digitale dell'host SSH in modo che la chiave fornita possa essere confrontata con quella del record DNS (probabilmente utilizzando DNSSEC). Non ne so molto, ma dovrebbe esserci un'impostazione client openssh per questo.

    
risposta data 08.11.2015 - 08:30
fonte

Leggi altre domande sui tag