De temps en temps, j’ai besoin de cloner l’un de mes dépôts GitHub, vers un poste de travail sur lequel je ne souhaite pas ou ne peut pas utiliser ma clef SSH pour réaliser l’opération. Dans ces cas là, je passe par la génération d’un token via Settings > Developer settings > Personal access tokens > Fined-grained tokens, auquel je ne n’assigne que l’autorisation « Content » avec « Read and Write », sur le dépôt concerné.
Avec une validité maximum d’un an, la sélection des dépôts concernés et une sélection minimale des permissions, je réduit ainsi grandement la surface d’exposition de mes dépôts. Une fois en possession du token généré, vient ensuite le moment de cloner le dépôt via git. Pour mémoire, voici la syntaxe à utiliser, par exemple, pour cloner mon dépôt yt-auto-dark
:
git clone https://oauth2:<token>@github.com/vvision/yt-auto-dark.git
Voilà pour l’aide-mémoire.
Seul bémol de la solution, n’importe qui ayant accès au dépôt cloné pourra effectuer des modifications pendant toute la durée de validité du token, ou jusqu’à ce que ce dernier soit révoqué. A ne pas utiliser n’importe comment, n’importe où donc. En sacrifiant un peu de simplicité (et encore) et en fonction de l’environnement, on pourra préférer la génération d’une clef SSH spécifique à la machine, auquel on veillera bien à associer une pass phrase de qualité. On aura alors accès à tous nos dépôts, mais il faudra penser nous-même à retirer la clef des clefs autorisées lors de la décommission de la machine utilisée.
Bref, plusieurs solutions possibles en fonction des besoins et des environnements, à choisir en connaissance de cause.