Introduction
Imagine que tu travailles tranquillement sur ton projet GitHub et, soudainement, ta commande git pull te retourne un "Permission denied (publickey)". Aucun changement de ton côté, ta clé est toujours enregistrée sur GitHub, et tout fonctionne sur un autre appareil avec une clé différente. Que s'est-il passé ?
Le contexte
Ce scénario est celui vécu par de nombreux développeurs récemment. La clé SSH, pourtant bien enregistrée et fonctionnelle, est rejetée par GitHub. Le problème semble résider dans l'absence d'un fichier .pub qui, lorsqu'il est généré, résout immédiatement le problème.
Pourquoi un fichier .pub ?
La présence d'un fichier .pub modifie le flux d'authentification utilisé par OpenSSH. Avec un fichier .pub, le client propose d'abord la clé publique et attend l'accord du serveur avant de signer l'authentification. Sans .pub, OpenSSH saute cette étape et envoie directement une requête d'authentification signée. Selon la RFC 4252, les deux méthodes sont valides, mais GitHub semble avoir récemment modifié sa politique de serveur pour n'accepter que la première méthode.
Une mise à jour du côté de GitHub ?
Les développeurs ont remarqué un changement dans l'identification des serveurs SSH de GitHub. Le nouveau server banner indique un changement de logiciel, ce qui pourrait expliquer la modification du flux d'authentification accepté. Ce changement pourrait être la raison pour laquelle une configuration fonctionnelle le matin cesse de l'être l'après-midi sans modification de la part de l'utilisateur.
Comment résoudre le problème
La solution est simple : assure-toi que ton fichier privé SSH a un fichier .pub correspondant. Il suffit de générer le fichier .pub avec la commande suivante :
``bash ssh-keygen -y -f ~/.ssh/nom_de_ta_cle > ~/.ssh/nom_de_ta_cle.pub ``
Cela peut sembler trivial, mais cette petite manipulation a résolu le problème pour de nombreux utilisateurs.
Conclusion
Ce cas met en lumière l'importance de rester à jour sur les changements de politique des plateformes que nous utilisons quotidiennement. La gestion des clés SSH est cruciale pour la sécurité et l'accès aux dépôts, il est donc essentiel de comprendre comment ces éléments fonctionnent ensemble.
Discutons de ton projet en 15 minutes.