La parte più importante dell'aggiunta "sicura" di una chiave al known_hostsfile è di ottenere l'impronta digitale della chiave dall'amministratore del server. L'impronta digitale chiave dovrebbe essere simile a questa:
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
Nel caso di GitHub, normalmente non possiamo parlare direttamente con un amministratore. Tuttavia, hanno messo la chiave sulle loro pagine Web in modo da poter recuperare le informazioni da lì.
Installazione manuale delle chiavi
1) Prendi una copia della chiave dal server e ottieni la sua impronta digitale. NB: farlo prima di controllare l'impronta digitale.
$ ssh-keyscan -t rsa github.com | tee github-key-temp | ssh-keygen -lf -
# github.com:22 SSH-2.0-babeld-f3847d63
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
2) Ottieni una copia dell'impronta digitale chiave dall'amministratore del server - in questo caso vai alla pagina con le informazioni su github.com
- Vai su github.com
- Vai alla pagina di aiuto (nel menu a destra se hai effettuato l'accesso; in fondo alla homepage altrimenti).
- Nella sezione Introduzione , vai a Connessione a GitHub con SSH
- Vai a Test della tua connessione SSH
- Copia l'impronta digitale SHA256 da quella pagina nel tuo editor di testo per un uso successivo.
3) Confronta i tasti delle due fonti
Posizionandoli direttamente uno sopra l'altro in un editor di testo, è facile vedere se qualcosa è cambiato
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA) #key recovered from github website
2048 SHA256:nThbg6kXUpJ3Gl7E1InsaspRomtxdcArLviKaEsTGY8 github.com (RSA) #key recovered with keyscan
(Si noti che la seconda chiave è stata manipolata, ma sembra abbastanza simile all'originale - se succede qualcosa del genere, si è sottoposti a gravi attacchi e si dovrebbe contattare un esperto di sicurezza di fiducia.)
Se le chiavi sono diverse, interrompere la procedura e contattare un esperto di sicurezza
4) Se le chiavi vengono confrontate correttamente, è necessario installare la chiave già scaricata
cat github-key-temp >> ~/.ssh/known_hosts
O da installare per tutti gli utenti su un sistema (come root):
cat github-key-temp >> /etc/ssh/ssh_known_hosts
Installazione chiavi automatizzata
Se è necessario aggiungere una chiave durante un processo di compilazione, è necessario seguire i passaggi 1-3 del processo manuale sopra.
Fatto ciò, esamina i contenuti del tuo github-key-tempfile e crea uno script per aggiungere tali contenuti al tuo file hosts noto.
if ! grep github.com ~/.ssh/known_hosts > /dev/null
then
echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> ~/.ssh/known_hosts
fi
Ora dovresti sbarazzarti di tutti i sshcomandi che hanno StrictHostKeyCheckingdisabilitato.