La partie la plus importante de l'ajout "sécurisé" d'une clé à l'adresse known_hosts
est d'obtenir l'empreinte de la clé auprès de l'administrateur du serveur. L'empreinte de la clé doit ressembler à quelque chose comme ceci :
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
Dans le cas de GitHub, normalement on ne peut pas parler directement à un administrateur. Cependant, ils ont mis la clé sur leurs pages web et nous pouvons donc récupérer les informations à partir de là.
Installation manuelle des clés
1) Prenez une copie de la clé du serveur et obtenez son empreinte digitale. N.B. : Faites ceci avant vérification de 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 de la clé auprès de l'administrateur du serveur - dans ce cas, accédez à la page contenant les informations sur github.com.
- Aller sur github.com
- Allez à la aide (dans le menu de droite si vous êtes connecté ; au bas de la page d'accueil sinon).
- Dans le Pour commencer aller à la section Se connecter à GitHub avec SSH
- Aller à 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 l'un au-dessus de l'autre dans un éditeur de texte, il est facile de voir si quelque chose a été modifié.
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 qu'elle ressemble beaucoup à l'originale - si quelque chose comme cela se produit, vous êtes victime d'une attaque sérieuse et devez contacter un expert en sécurité de confiance).
Si les clés sont différentes, annulez la procédure et contactez un expert en sécurité.
4) Si les clés sont comparées correctement, vous devez installer la clé que vous avez déjà téléchargée.
cat github-key-temp >> ~/.ssh/known_hosts
Ou pour l'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.
Une fois cela fait, examinez le contenu de votre github-key-temp
et créez un script pour ajouter ce contenu à votre fichier d'hôtes connus.
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 devriez maintenant se débarrasser de tout ssh
Les commandes qui ont StrictHostKeyChecking
handicapés.