La partie la plus importante de l'ajout "sécurisé" d'une clé au known_hosts
fichier consiste à obtenir l'empreinte de la clé auprès de l'administrateur du serveur. L'empreinte digitale doit ressembler à ceci:
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
Dans le cas de GitHub, normalement nous ne pouvons pas parler directement à un administrateur. Cependant, ils ont mis la clé sur leurs pages Web afin que nous puissions récupérer les informations à partir de là.
Installation manuelle des clés
1) Prenez une copie de la clé du serveur et récupérez son empreinte digitale. NB: Faites ceci avant de vérifier l'empreinte 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) Obtenez une copie de l'empreinte digitale clé de l'administrateur du serveur - dans ce cas, accédez à la page contenant les informations sur github.com
- Allez sur github.com
- Accédez à la page d' aide (dans le menu à droite si vous êtes connecté; sinon au bas de la page d'accueil).
- Dans la section Mise en route , accédez à Connexion à GitHub avec SSH
- Allez à Test de votre connexion SSH
- Copiez l'empreinte SHA256 de cette page dans votre éditeur de texte pour une utilisation ultérieure.
3) Comparez les clés des deux sources
En les plaçant directement les uns au-dessus des autres dans un éditeur de texte, il est facile de voir si quelque chose a changé
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA) #key recovered from github website
2048 SHA256:nThbg6kXUpJ3Gl7E1InsaspRomtxdcArLviKaEsTGY8 github.com (RSA) #key recovered with keyscan
(Notez que la deuxième clé a été manipulée, mais elle ressemble assez à l'original - si quelque chose comme cela se produit, vous êtes sérieusement attaqué et devez contacter un expert en sécurité de confiance.)
Si les clés sont différentes, abandonnez la procédure et contactez un expert en sécurité
4) Si les clés se comparent correctement, vous devez installer la clé que vous avez déjà téléchargée
cat github-key-temp >> ~/.ssh/known_hosts
Ou à installer pour tous les utilisateurs d'un système (en tant que root):
cat github-key-temp >> /etc/ssh/ssh_known_hosts
Installation automatisée des clés
Si vous devez ajouter une clé pendant un processus de construction, vous devez suivre les étapes 1 à 3 du processus manuel ci-dessus.
Cela fait, examinez le contenu de votre github-key-temp
fichier et créez un script pour ajouter ce contenu à votre fichier d'hôtes connu.
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
Vous devez maintenant vous débarrasser de toutes les ssh
commandes StrictHostKeyChecking
désactivées.