Automatiser la configuration des clés SSH GitHub sur Raspberry Pi avec gh CLI
Je viens de recevoir un nouveau Raspberry Pi 🎉
Avec chaque nouvel ordinateur vient un moment délicieux de configuration. Parmi ces configurations, il y a la mise en place de l’accès à mes dépôts GitHub privés.
Dans mon cas, j’en ai besoin pour récupérer un dépôt contenant un script de bienvenue. Ce script affiche, lors de la connexion SSH à l’instance, le nom de l’instance, des informations comme le nombre d’utilisateurs actuellement connectés, l’uptime, l’adresse IP, et enfin, un prompt et un schéma de couleurs personnalisés. Si ce projet vous intéresse, je l’ai rendu publiquement accessible ici. Au-delà de ça, j’ai aussi besoin d’accéder à des dépôts privés qui contiennent des modèles de configuration par défaut pour Portainer, Prometheus, Loki, Watchtower, et plus encore.
Dans ce court article, je détaillerai la façon la plus efficace de configurer cela à distance via SSH : en utilisant la GitHub CLI pour gérer à la fois l’authentification et les clés SSH en une seule fois.
La Méthode “Tout-en-Un” via GitHub CLI
D’abord, ouvrez une connexion SSH vers l’instance que vous voulez configurer.
Une fois connecté, installez la GitHub CLI (voir le site officiel) en exécutant ces commandes :
sudo apt update
sudo apt install -y gh
Nous utiliserons ensuite la GitHub CLI pour nous connecter. La beauté de gh est qu’il gère la gestion des clés SSH automatiquement.
Lancez la commande suivante :
gh auth login
Cette commande déclenche une configuration interactive. Suivez ces étapes spécifiques pour tout configurer d’un coup :
- Compte (Account) : Sélectionnez
GitHub.com.
invite de connexion gh auth demandant à quel compte se connecter
- Protocole (Protocol) : Sélectionnez
SSH.
invite de connexion gh auth demandant le protocole, sélectionnant SSH
Note : Vous pouvez sélectionner HTTPS si vous préférez, mais vous perdrez la fonctionnalité de génération automatique de clé et pourriez avoir besoin de configurer un “credential helper” plus tard.
-
Clés SSH (SSH Keys) : L’outil va vérifier votre dossier
.ssh.-
Si aucune clé n’existe : Il demandera “Generate a new SSH key to add to your GitHub account?”. Sélectionnez Yes. Vous pouvez laisser la passphrase vide (appuyez sur Entrée) pour les scripts automatisés. Enfin, Sélectionnez Yes pour uploader la nouvelle clé publique.
-
Si une clé existe déjà : Il demandera “Upload your SSH public key to your GitHub account?” et listera votre clé existante (ex.
id_ed25519.pub). Sélectionnez-la et appuyez sur Entrée.
-

💡 Astuce : Vous voulez une clé différente ? Si l’outil détecte une clé existante mais que vous préférez en créer une toute nouvelle pour cet appareil spécifique, sélectionnez Skip. Finissez le processus de connexion, générez votre nouvelle clé manuellement (ssh-keygen), et lancez ensuite gh ssh-key add path/to/key.pub pour l’uploader instantanément.
- Méthode d’Authentification : Sélectionnez
Paste an authentication token.
Note : Nous utilisons la méthode par token car la connexion via navigateur échoue souvent ou reste bloquée sur les appareils “headless” (SSH uniquement).
invite de connexion gh auth demandant quelle méthode d’authentification utiliser
La CLI fournira un lien pour créer un token et une liste des scopes requis.
Ouvrez le lien fourni dans le navigateur de votre ordinateur.
la page contenant les tokens sur le compte GitHub de l’utilisateur
Cliquez sur le menu déroulant “Generate new token” dans le coin supérieur droit, puis sélectionnez “Generate new token (classic)”.
le formulaire de création pour générer un nouveau token (classic)
Nommez votre token (ex. “Raspberry Pi Setup”), définissez une date d’expiration, et sélectionnez les scopes requis : repo, read:org, et workflow.
Important : Assurez-vous de cocher aussi admin:public_key (ou write:public_key). Cette permission est requise pour que la CLI upload automatiquement votre clé SSH sur votre compte.
Cliquez sur “Generate token”. Copiez le token immédiatement.
token nouvellement créé
Retournez sur votre terminal, collez le token, et appuyez sur Entrée.
C’est tout ! Vous êtes maintenant connecté, et votre Raspberry Pi a une clé SSH valide autorisée sur votre compte GitHub. Aucun copier-coller manuel requis.
Tester que tout fonctionne
Pour effectuer notre test, créons un dépôt privé. Depuis la page d’accueil GitHub, cliquez sur le bouton “New”. Nommez-le test-RPI-connection et sélectionnez Private.
création d’un nouveau dépôt
Sur la page du dépôt, cliquez sur le bouton vert Code, assurez-vous que l’onglet SSH est actif, et copiez l’URL (elle commence par git@github.com...).
De retour dans votre terminal :
git clone git@github.com:your_username/test-RPI-connection.git
Si votre configuration est réussie, vous devriez voir un message disant Cloning into 'test-RPI-connection'... (et un avertissement qu’il est vide).
Félicitations ! Votre Raspberry Pi est maintenant pleinement intégré avec votre écosystème GitHub privé.