Soluzione 1:
IMO, il modo migliore per farlo è il seguente:
ssh-keygen -R [hostname]
ssh-keygen -R [ip_address]
ssh-keygen -R [hostname],[ip_address]
ssh-keyscan -H [hostname],[ip_address] >> ~/.ssh/known_hosts
ssh-keyscan -H [ip_address] >> ~/.ssh/known_hosts
ssh-keyscan -H [hostname] >> ~/.ssh/known_hosts
Ciò assicurerà che non ci siano voci duplicate, che tu sia coperto sia per il nome host che per l'indirizzo IP e eseguirà anche l'hashing dell'output, una misura di sicurezza aggiuntiva.
Soluzione 2:
Imposta lo StrictHostKeyChecking
opzione a no
, nel file di configurazione o tramite -o
:
ssh -o StrictHostKeyChecking=no [email protected]
Soluzione 3:
Per i più pigri:
ssh-keyscan -H <host> >> ~/.ssh/known_hosts
-H esegue l'hashing del nome host/indirizzo IP
Soluzione 4:
Come accennato, usare key-scan sarebbe il modo giusto e discreto per farlo.
ssh-keyscan -t rsa,dsa HOST 2>&1 | sort -u - ~/.ssh/known_hosts > ~/.ssh/tmp_hosts
mv ~/.ssh/tmp_hosts ~/.ssh/known_hosts
Quanto sopra farà il trucco per aggiungere un host, SOLO se non è stato ancora aggiunto. Inoltre, non è sicuro per la concorrenza; non devi eseguire lo snippet sulla stessa macchina di origine più di una volta allo stesso tempo, poiché il file tmp_hosts può essere bloccato, portando infine il file known_hosts a gonfiarsi...
Soluzione 5:
Potresti usare ssh-keyscan
comando per prendere la chiave pubblica e aggiungerla al tuo known_hosts
file.